mysql - 这些表是第二范式吗?第三?

标签 mysql sql sql-server sql-server-2008

我的数据库中有以下表格:

enter image description here

这些表(未显示)上方是一个 Users 表,其中输入了 SendingUserId 和 ReceivingUserId(它们是外键)。

这些表是标准化形式吗?我觉得好像错过了一些东西..也许 SendingUserId 和 ReceivingUserId 应该是 UsersWithMessages 表中的复合键?

最佳答案

只要一条消息只能有一个发送者和一个接收者,就没有多对多关系。

由于您的 Message 表已包含 SendingUserIdReceivingUserId,因此只需将它们设为外键 (FK),就不需要 UsersWithMessages 表根本没有。

您将拥有一个简单的两个表架构:UserMessage

关于mysql - 这些表是第二范式吗?第三?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24092825/

相关文章:

sql - MS Access 2007 中 NVL 功能的替代方法是什么

带有基于基值的子查询的 SQL 查询

sql-server - throw 语句前加分号

mysql - MySQL 的 Decimal 函数的第一个参数是做什么的?

mysql - cakephp mysql,自动增量 id 或 varchar 作为主键

mysql - 选择*(其中标签名称位于联结表中)

sql - PostgreSQL:如何在 select 语句中添加其他表的列?

c# - Fluent NHibernate - 自动架构构建

mysql - SQL:选择唯一日期、该日期的总计、该日期的总计以及另一个参数

mysql - Spring Data JPA - 为类提供了错误类型的 id。应为 : class java. lang.Integer,得到类 java.lang.Long