Dab*_*rnl 3 .net sql database-design
我有一个简单的消息系统,到目前为止使用基于文件的存储.由于系统用户数逐渐增加,我想切换到基于数据库的存储.
在代码中,消息服务器维护用户列表(带有凭据)和消息列表.Message对象的主要字段是Sender(User类型),Recipients(类型为User [])和Content(类型为string).
通常,用户将从服务器请求发送给他的消息,并接收其中"收件人"字段包含其自己的用户名的所有消息.
因此,对于数据库,我设想了以下表:
-A Users表
-A Messages表
( - 每个用户的表,指定由MessageID发送给他的消息)?
我遇到的问题是如何存储收件人字段(其中包含一个数组),以便数据库查询可以搜索请求接收发送给他的邮件的用户.我没有比为在系统上注册的每个新用户动态创建表更好的解决方案,该系统保存对作为收件人列出的消息的引用.其他方法可能吗?
非常感谢!
Dan*_*llo 11
我没有比为每个新用户动态创建表更好的解决方案......
从关系数据库的角度来看,您永远不应该看到"动态创建的表" .
一般来说,您的问题解决如下:
users表(user_id,name,surname ...)messages表(message_id,time_stamp,subject,body,sent_by ...)messages_recipients表(MESSAGE_ID,recipient_id)无论是sent_by在现场messages表和recipient_id该领域中的messages_recipients表应该是外键的user_id领域users表.
| 归档时间: |
|
| 查看次数: |
239 次 |
| 最近记录: |