例如,假设我有一个名为 user 的实体和一个名为 profile_picture 的实体。用户可能没有或只有一张个人资料照片。
所以我想,我会创建一个名为“user”的表,其中包含以下字段:
用户:user_id,profile_picture_id (为了简化这一点,我保留了所有其他属性,如姓名、电子邮件等)
好的,所以如果用户没有 profile_picture,它的 id 在我的关系模型中将为 NULL。现在有人告诉我,我必须避免将任何东西设置为 NULL,因为 NULL 是“坏的”。
你怎么看这件事?我是否必须从用户表中删除 profile_picture_id 并创建一个链接表,如 user__profile_picture 和 user_id、profile_picture_id?
哪些被认为是数据库设计中的“更好的实践”?
最佳答案
这是一个非常合理的模型。确实,您可以采用为 1:1 关系创建连接表的方法(或者更好的是,您可以将 user_id
放入 profile_picture
表中),但除非您认为很少有用户会有个人资料照片,那么这可能是一个不必要的复杂化。
可读性是关系设计中的一个重要组成部分。您认为个人资料图片是用户的属性,还是用户是个人资料图片的属性?您从合乎逻辑的事物着手,然后在您认为有必要通过性能测试 时优化直觉设计。不要过早优化。
关于database - 如果我的实体有一个 (0-1) :1 relation to another entity,,我将如何在数据库中对其建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1974940/