需求如下:
一条消息可以发送给多个人,或者多个部门如何设计数据库呢?
消息中如何保存这些人或者部门的ID,
是为每个人在数据库复制该条消息,还是一条消息共享给这些人查看呢?如果是共享一条消息给这些人查看,那删除时候怎么办??
希望有经验的人多多提出,分不是问题菜鸟提问?请大家多帮忙
一条消息可以发送给多个人,或者多个部门如何设计数据库呢?
消息中如何保存这些人或者部门的ID,
是为每个人在数据库复制该条消息,还是一条消息共享给这些人查看呢?如果是共享一条消息给这些人查看,那删除时候怎么办??
希望有经验的人多多提出,分不是问题菜鸟提问?请大家多帮忙
解决方案 »
- 选中datagridview中的内容,按下ctrl+c进行复制,粘贴到EXCEL中中文乱码
- sql语句怎么只查今日信息
- 用户注册刷新问题——得重新输入
- 如何能将根据指定条件从数据库中查询到的行的各个列值赋给textbox显示出来?(急)
- ASP.NET给源里的图片做个判断 判断他链接到哪个地址 要怎么设置啊?
- 启动一个C# p2p新项目,找志同者共创
- 关于WinForm界面的问题?急用。。。
- 在页面中,能不能用DBGRID向数据库某个表增加多条记录
- C#调用dll,出现“尝试读取或写入受保护的内存,这通常指示其他内存已损坏".请高手帮忙!
- c#数据库插入操作
- 求:BizTalk Server 2004 指路人
- 我想知道一下Page_Load和OnInit有什么区别
如果你消息的内容不多,可以考虑复制,就像你说的,如果当一个人要删除可能会有问题(这个在下面可以解决),但如果你的内容很多,这样会产中冗余数据,如果采用共享,则可在一条消息记录中加上各个接收消息者的一个标志字段,当一个人要删除该消息,则在其相应的标志字段上标志为删除(也就是逻辑删除,),而其他人还是能看到,当所有人都删除了,也就是每个标志字段都标志为删除了,则可进行物理删除,
我以前项目中就采用共享的方式,但这样可扩展性不好,如果这时又要加入一个接收消息方,改的就多了.所以适用于需求比较稳定的.改进版,你另外用一个表保存该消息对各用户的许可察看(或是否已删除)的标志。只要三个字段:
create table [dbo].[MessageStatus](
messageid int not null,
userid int not null,
deleted tinyint not null default(0)
)
接受方id,消息id,消息状态(未读,已读,删除)消息内容表:
消息id,消息内容,引用个数阅读消息的人对消息的操作-----更改消息表中的消息状态字段。