gpt4 book ai didi

sql - 多对多数据库设计问题

转载 作者:可可西里 更新时间:2023-11-01 07:31:51 26 4
gpt4 key购买 nike

假设您有以下多对多表关系:

user
-----
id
first_name
last_name

user_prefs
----------------
id
preference_name

user2user_prefs
-------------
id
user_id
user_pref_id

但是假设您有“主页”的用户偏好并且需要在某个地方存储实际的主页 url。那会去哪里?

我不能在 user_prefs 中放置一个值,因为这样相同的值将适用于具有该映射的每个人。

我可以像这样把它放在 user2user_prefs 中:

user2user_prefs
-------------
id
user_id
user_pref_id
value

但就规范化而言,这是最好的方法吗?我觉得我这样做的方式不太对劲(一方面,我不能在新“值”上使用 ENUM,因为它必须包含所有偏好的所有值)。有什么想法吗?

谢谢!刺L

最佳答案

您必须查看功能依赖性。该值不取决于用户,它不取决于用户偏好,但它确实取决于两者。这意味着您需要按照您的建议将它放在 user2user_prefs tabvle 中。

如果您需要使用枚举,则 value 属性可以在另一个表中查找值。

关于sql - 多对多数据库设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com