sql - 用户消息数据库架构?

标签 sql database database-design database-schema

这可能是非常主观的,我对此有自己的想法,但是如何构建一个支持用户到用户消息(一对一或一对多)的数据库。

我最初的想法是有一个 MESSAGE 表和 MESSAGE_PARTIES 表

MESSAGE would include the following fields: -ID, Subject, Body, Created On, Parent MSG ID (for replies)

MESSAGE PARTIES fields would include: -ID, Message ID, Sender ID, Recipient ID, Sent On

这是合理的逻辑吗?我非常想知道更好/更有效的方法是什么。

最佳答案

MESSAGE PARTIES 你不太对劲。根据您当前的设置,您可以指定多个发件人和多个日期(更准确地说,您可以指定发件人、收件人和日期的多个组合)。这与我熟悉的任何消息传递系统都不一样,而且可能不是您想要的(它也不符合您的描述)。

更合适的布局是将发件人和“已发送”字段放在 MESSAGE 表中,然后只是 IDMessage ID,和 MESSAGE PARTIES 表中的 Recipient ID

关于sql - 用户消息数据库架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3270119/

相关文章:

sql - 多态关联和外键引用可以引用同一个表。如何制作新对象?

python - sqlalchemy外键与父类的关系

sql - Oracle 12c - CLOB 字段中的西里尔字符

sql-server - 使用 SQL Server 2000 表作为工作队列时,有哪些方法可以编写可伸缩服务?

sql-server - 用约束建模多对一?

php - 如何将一个表数据插入另一个表列

mysql - 从另一个查询的结果中向查询添加列

sql - 如何找到 SQL Server 数据库的时区?

database - Laravel 4 db 种子特定的种子文件

sql - 计算一行的总和并除以另一行的总和。 Oracle View /查询