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

解决方案 »

  1.   

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

  2.   

    sid uid_from uid_to time status足够了 
      

  3.   

    弄个中间表,放聊天A的id,聊天A的表名(用1,0分辨即可),聊天B的id,聊天B的表名,时间,内容