【问题标题】:SQL Schema - Default of 1:ManySQL 架构 - 默认值为 1:许多
【发布时间】:2011-11-25 22:55:38
【问题描述】:

如何指定 1:Many 关系的默认值...例如,假设用户有 5 个电话号码...我需要记录“首选”电话号码。我应该使用 phone_number 记录上的属性来指示首选的属性 - 还是使用用户记录的属性(例如 preferred_phone_number)作为 phone_numbers 表中的主键?

谢谢

【问题讨论】:

    标签: mysql schema entity-relationship


    【解决方案1】:
    1. User.preferred_phone:每个用户有零个或一个首选号码。

    2. Phone.is_preferred:每个用户可能有任意数量的首选号码,但无法选择“最喜欢”,甚至是与用户无关的“首选号码”。

      李>

    所以我显然会坚持 #1。

    【讨论】:

    • 和 User.preferred_phone 将是 phone_numbers 表中的主键?即外键(对不起,过度澄清 - 只是让我的头脑进入这些东西!)
    • 是的,可以为空的 User.preferred_phone 是引用 Phone.id 的外键。这样你总是指向一个有效的电话(或没有电话)。有一个缺点:您可能指向与该用户无关的电话。 on update 触发器可能会检查这一点。
    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 2011-09-10
    • 2019-08-08
    • 1970-01-01
    相关资源
    最近更新 更多