我是初学者,请教一下:
    我想储存的对象有“公告”、“已读公告的员工”、“未读公告的员工”,而公告每天都增加几十条,员工每月都有增删,不知该如何设计才能达到比较好的性能?谢谢。

解决方案 »

  1.   

    --仅做参考:)
    用户信息表
    ----------
    UserID,UserName......
    公告信息表
    -----------
    BulletinId,BulletinBody........阅读公告信息表
    Userid,BulletinId
    用户阅读某条公告后在此表添加一条记录!
    已读某公告的员工:
    --示意代码
    Select UserID
    From 用户信息表 A
    Where Exists
    ( Select 1 From 阅读公告信息表 Where A.Userid=UserId And BulletinID=公告号)未读某公告的员工:
    Select UserID
    From 用户信息表 A
    Where Not Exists
    ( Select 1 From 阅读公告信息表 Where A.Userid=UserId And BulletinID=公告号)
      

  2.   

    员工每月都有增删
    -----------------
    可以做逻辑删除或物理删除!
    逻辑删除可以用Flag字段来标识,在用户信息表与阅读信息表中另加一字段,来标识该记录是否删除!
    物理删除可以用触发器来维护业务关系!用户信息表内的用户删除后,将级联删除阅读信息表中相应的Userid