日期:2014-05-18  浏览次数:20464 次

企业内部邮局的数据库设计
我没有学过数据库,请高手帮忙,谢谢了

我需要设计一个企业内部邮局,想用数据库来实现,因为如果架设邮件,那么MIS和邮件用户名统一比较麻烦,所以想用数据库来实现,现在碰到一些问题,

1.因为用户名就是员工名,整个企业组织架构是树形结构的,如果要发一个邮件给一个部门,那么,这个部门下所有的子部门的员工都要能收到,如下:
                  研发部
                    |
                      ——设计部
                                    |
                                    ——绘图部

如果发到研发部的邮件,那么下面的部门成员都要能收到
我的企业架构的表是:
  id
  部门名
  父部门id
  ....
职位表:
  id
  部门id
  职位名称
  ...
员工表
  id  
  部门id
  职位id
  姓名
....

这样如果要设计一个邮件表就是这样的
  id
  邮件标题
  邮件内容
  邮件附件id
  要发送部门id
  要发送职位id  
  要发送员工id
  .....

如何在一个用户登录后,能够根据自己所属部门id或职位id或员工id来获取发送给自己的邮件?

2.   邮件要跟踪,既:哪个用户在什么时候浏览过这个邮件,那应该要设计一个邮件跟踪表,内容是:
    id  
    邮件id
    用户id
    时间
  状态

但是,问题出来了,如果一个邮件是要发送给全体员工的话,那么就会有很多条记录,如果一天200个全体员工邮件,200人的企业,一天就有4千条记录,如果一年就有12W的记录,记录多的时候查询性能可能就受到影响。

3.邮件的附件一般是如何存放的,是
  a.放在image字段里面
  b.数据库里面保存附件路径,把附件上传到文件服务器?

请高手帮忙了,谢谢。

------解决方案--------------------
帮顶!
------解决方案--------------------
可以用邮件服务器啊
------解决方案--------------------
一个参考方案:

对于邮件,除了接收者识别信息(如编号、登录名)外的信息(主题、内容、发送时间等)放在一个表,接受者识别信息单独放在一个表(2个字段:邮件编号、接收者识别信息,2个字段合起来做聚簇索引)


------解决方案--------------------
如果不懂的话,你可以通过先建立视图,再从视图中慢慢的体会。有空再帮你写写
------解决方案--------------------
現在的郵件系統(比如outlook)不都支持用,號或者;號來分割多個收件者么.

然后outLook也支持用戶分組.

我想應該這樣做

EmailId
SendFrom
EmailTitle
EmailContent
邮件附件id
SendTo 以,或;分隔(outlook兩者都支持的)

然後把你的郵件系統做得跟outlook差不多:)


------解决方案--------------------
累,还是OA好