企业内部邮局的数据库设计
我没有学过数据库,请高手帮忙,谢谢了
我需要设计一个企业内部邮局,想用数据库来实现,因为如果架设邮件,那么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好