列中的多个值

时间:2010-03-28 03:13:32

标签: database-design rdbms

我需要一些关于多条记录的建议。我的表格包含字段usernamemessagemessage_to。该方案可以一次向多个用户发送相同的消息。你有什么建议?使用逗号分隔值将所有收件人保存在单个列中还是添加多个条目是否有效?

1 个答案:

答案 0 :(得分:10)

不,不,不,不,不。

这将是对关系数据库模型的资本违规。创建三个表:Users,Messages和MessagesSentToUsers。

  • Users表中,存储user_id值和用户的name
  • Messages表格中,存储message_id值和消息text
  • MessagesSentToUsers表中,每次发送邮件时都创建记录。此记录应仅包含获取邮件的用户的user_id,以及指向他们收到的邮件文本的message_id

如下所示:

|       User     |  |      Message      |  |  MessageSentToUsers   |
|---------|------|  |------------|------|  |----------|------------|
| user_id | name |  | message_id | text |  | user_id  | message_id |

通常,每个表中的id列都是整数类型。最常见的情况是让DBMS为每一行分配一个值(因此您不必管理这些数字)。