日期:2014-05-17  浏览次数:20481 次

一个会员表,一个管理员表,两者聊天记录数据库如何设计?
一个会员表,一个管理员表,这两人表是必须分开的,两者聊天记录数据库如何设计?
目前是这么设计的:类似BBS
一个主贴  一个回帖,在回帖中回帖人员既有会员也有管理员,对于回帖角色是用bool值区分,但这样的话,就没有外键关联了,这样设计合理吗!
数据库 bbs

------解决方案--------------------
为什么要分开呢
------解决方案--------------------
会员和管理员只是角色的区别,一般是放在一个表里面,使用一个字段的值来区分。
聊天数据是另外一个表就行了。
------解决方案--------------------
那会员和管理员就分开聊天,各自聊各自的好了,最好做成两套系统。

什么?干嘛得分开,不合理?你也知道啊。
------解决方案--------------------
对用bool区分发言人,不好,且不利于扩展。但是省事儿。lz应该要充分理解表间关系,1对1,1对多,多对多,在实际业务逻辑中该如何对应。之所以几乎所有的数据库都只有这三种关系,发展了n年也未见有更多的新关系出现,就是因为这三种关系可以描述我们现有的几乎所有业务逻辑关系。
像lz这样的情况,如果用一个bit值来区分发言人是否管理员,可见管理员只有一个,如果多个,怎么办?就像楼上几位说的那样,管理员和用户的账号信息应该统一放在同一个表内,然后发言信息用外键来表明该条信息的发言人。
如果一定要将管理员单独放一个表,那么正好这个可以是角色表。同样用外键来表明哪个帐号是哪个角色。


------解决方案--------------------
sid uid_from uid_to time status

足够了 
------解决方案--------------------
弄个中间表,放聊天A的id,聊天A的表名(用1,0分辨即可),聊天B的id,聊天B的表名,时间,内容