当前位置: 代码迷 >> Java Web开发 >> bbs用户表结构设计有关问题讨论
  详细解决方案

bbs用户表结构设计有关问题讨论

热度:787   发布时间:2013-02-25 21:15:16.0
bbs用户表结构设计问题讨论
做一个BBS,在进行用户权限设置和表的设计上,想看看各位对于BBS用户表的设计,有什么好的方案。
下午和同学讨论,现有如下方案。

方案1:
1、管理员表:ID, UserName, PassWord
  管理员用户进行内置,创建一个后台登陆进行管理(后台管理页面),可以对整个BBS进行调整,对超级版主、版主的任命,拥有其他所有权限
   
2、普通用户表:ID, UserName, PassWord
  注册成功的用户,可以发表帖子、回复帖子、接收和发送短信息

3、版主用户表:ID, UserName, PassWord,Permissions(权限), ManagementPlate(管理版块)
  超级版主,能够对版主进行任何,拥有版主所有权限
  版主,可以对其所管理的相应版块进行管理,拥有普通用户所有权限

4、对于未进行登陆操作的IP,设置为游客。

  考虑问题:1、是否需要建立“新注册用户表”,对表中用户进行审核后再转到“普通用户表”
  2、用户登陆进行确认,那么对于管理员、普通用户以及版主用户,不同的用户登陆需要到不同的表中进行查找,假设其查表顺序如下:先在普通用户表进行查找,然后在版主用户表进行查找,最后在管理员表进行查找。使用如此的查找顺序是否最佳
  3、新用户注册,在确认用户名是否存在时,需要对所有用户表(包括管理员表)逐一进行查找以确认是否存在该用户,是否会影响效率(是否需要考虑效率问题?)

方案2:
1、管理员表: ID, UserName, PassWord
  管理员用户进行内置,创建一个后台登陆进行管理(后台管理页面),可以对整个BBS进行调整,对超级版主、版主的任命,拥有其他所有权限

2、用户表:ID, UserName, PassWord,Permissions(权限), ManagementPlate(管理版块)
  将超级版主、版主、普通用户都存于此表中。通过权限进行区分

3、对于未进行登陆操作的IP,设置为游客。

  考虑问题:版主用户比较少,普通用户数量多,将2者合到一个表中,容易造成用户数据混杂,管理不方便。但是相对于方案一,对用户登陆以及用户注册,效率提高了一点点,在管理上有所下降。相对于方案3,又方便管理一点点,效率也高了一点点。所以此方案属于折中方案

方案3:
1、用户表:ID, UserName, PassWord, Permissions(权限), ManagementPlate(版块)
  将管理员,超级版主,版主,普通用户统一放入一个表中,通过权限进行区分

2、对于未进行登陆操作的IP,设置为游客。

  考虑问题:通过权限进行区分是否合适,是否便于管理。



------解决方案--------------------------------------------------------
用户表,角色表,权限表
用户具有某种角色
某种角色具有某些权限
仅供参考
------解决方案--------------------------------------------------------
可以采用基于角色的权限管理系统:
超级管理员是系统默认设定,拥有一切权利。
用户可以有多个角色
每个角色有不同的权限
可以有用户表,角色表,权限表,用户角色表,角色权限表,这样关系明了,查找容易
实现细粒度的划分。
本人刚做完这样一个系统,有兴趣可以讨论下。
------解决方案--------------------------------------------------------
下面这些原来在这个帖子中回复的:
http://topic.csdn.net/u/20090925/23/4de5f85a-8da5-4b98-9952-141bd809e396?r=60099968#r_60099968

Java code
==================================================================================T_USER 用户----------------------------------------------------------------------------------ID             NUMBER(9)      NOT NULL   主键(Primary Key)USERNAME       VARCHAR2(20)   NOT NULL   用户名(Unique Index)PASSWORD       VARCHAR2(40)   NOT NULL   密码EMAIL          VARCHAR2(50)   NOT NULL   E-mailACTIVE_CODE    VARCHAR2(36)   NOT NULL   邮箱激活码(使用UUID)(Unique Index)STATUS         NUMBER(1)      NOT NULL   用户状态(0新注册;1已激活;2封杀;3...)REGISTER_TIME  DATE           NOT NULL   注册时间ACTIVE_TIME    DATE           NULL       激活时间NIKENAME       VARCHAR2(50)   NOT NULL   用户昵称==================================================================================T_BOARD 版块----------------------------------------------------------------------------------ID             NUMBER(9)      NOT NULL   主键(PK)BOARD_NAME     VARCHAR2(100)  NOT NULL   版块名称BOARD_DESC     VARCHAR2(500)  NOT NULL   版块描述==================================================================================T_MODERATOR 版主----------------------------------------------------------------------------------ID             NUMBER(9)      NOT NULL   主键(PK)BOARD_ID       NUMBER(9)      NOT NULL   版块IDMODERATOR      VARCHAR2(20)   NOT NULL   版主用户名CREATE_TIME    DATE           NOT NULL   上任时间==================================================================================T_POST 帖子----------------------------------------------------------------------------------ID                   NUMBER(9)      NOT NULL   主键(PK)SUBJECT              VARCHAR2(200)  NOT NULL   帖子标题POST_USERNAME        VARCHAR2(20)   NOT NULL   发帖用户名POST_TIME            DATE           NOT NULL   发帖时间BOARD_ID             NUMBER(9)      NOT NULL   版块IDPOST_CONTENT         CLOB           NOT NULL   帖子内容REPLY_AMOUNT         NUMBER(9)      NOT NULL   回复数量      DEFAULT 0LAST_REPLY_USERNAME  VARCHAR2(20)   NULL       最后回复用户LAST_REPLY_TIME      DATE           NULL       最后回复时间STATUS               NUMBER(2)      NOT NULL   帖子状态(0正常;1锁定;2删除)==================================================================================T_POST_PROCESS_HIS 版主帖子处理历史记录----------------------------------------------------------------------------------ID             NUMBER(9)      NOT NULL   主键(PK)POST_ID        NUMBER(9)      NOT NULL   帖子IDMODERATOR      VARCHAR2(20)   NOT NULL   版主用户名STATUS         NUMBER(2)      NOT NULL   帖子处理状态CAUSE          NUMBER(2)      NOT NULL   处理原因(0广告帖;1色情帖;2骂人帖;...;99其他)CONTENT        VARCHAR2(2000) NOT NULL   处理内容==================================================================================T_REPLY 帖子回复----------------------------------------------------------------------------------ID             NUMBER(9)      NOT NULL   主键(PK)REPLY_USERNAME VARCHAR2(20)   NOT NULL   回复人REPLY_TIME     DATE           NOT NULL   回复时间REPLY_CONTENT  CLOB           NOT NULL   回复内容STATUS         NUMBER(2)      NOT NULL   回复状态(0正常;1锁定;2删除)==================================================================================T_REPLY_PROCESS_HIS 帖子回复版主处理历史记录----------------------------------------------------------------------------------参考 T_POST_PROCESS_HIS