database-design - 使用 NULL 外键或指向保留记录?

标签 database-design

我正在设计一个包含消息和信使的数据库。

create table Message(
    MessageID int,
    MessengerID int,
    Content nvarchar(max)
)
create table Messenger(
    MessengerID int,
    MessengerName nvarchar(100)
)

有时,信使是未知的。在这种情况下,您会使用 NULL 值,还是在 Messenger 表中为未知信使保留记录吗?我很想看到一个简短的解释为什么一种解决方案比另一种更好。

最佳答案

我会使用 NULL。

  1. 这正是 NULL 存在的目的。说“我不知道那是什么。”

  2. 在表中保留一条记录总是很痛苦。你现在必须对你的用户说,嘿,如果你愿意,你可以添加更多的信使,你可以删除它们,你甚至可以修改,但不要删除这一行,那一行。这会导致不必要的并发症。

关于database-design - 使用 NULL 外键或指向保留记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5168478/

相关文章:

PHP/SQL : Leveling/XP System for users on a website. 我应该如何存储数据?关于 session 的思考

MySQL Visual Studio 2015 无法为所选对象创 build 计窗口

mysql - 在数据库表中存储多个 ID 的理想解决方案是什么?

MySQL:大表需要join,如何拆分优化?

mysql - 如何在计算机之间更新mysql表

php - 不确定 mysql 中的文本字段应该有多长

database - 如何存储双向关系

mysql - 是否建议将(图像)表与(用户)、(产品)、(公司)以及任何独立的表相关联?

php - 数据库结构和查询分层数据和数据树

database - 2 个表的 2 个记录之间的计算需要扩展到超过 1300 个字段。如何以及哪个数据库可以实现这一目标?