【发布时间】:2011-11-25 22:55:38
【问题描述】:
如何指定 1:Many 关系的默认值...例如,假设用户有 5 个电话号码...我需要记录“首选”电话号码。我应该使用 phone_number 记录上的属性来指示首选的属性 - 还是使用用户记录的属性(例如 preferred_phone_number)作为 phone_numbers 表中的主键?
谢谢
【问题讨论】:
标签: mysql schema entity-relationship
如何指定 1:Many 关系的默认值...例如,假设用户有 5 个电话号码...我需要记录“首选”电话号码。我应该使用 phone_number 记录上的属性来指示首选的属性 - 还是使用用户记录的属性(例如 preferred_phone_number)作为 phone_numbers 表中的主键?
谢谢
【问题讨论】:
标签: mysql schema entity-relationship
User.preferred_phone:每个用户有零个或一个首选号码。
Phone.is_preferred:每个用户可能有任意数量的首选号码,但无法选择“最喜欢”,甚至是与用户无关的“首选号码”。
所以我显然会坚持 #1。
【讨论】:
User.preferred_phone 是引用 Phone.id 的外键。这样你总是指向一个有效的电话(或没有电话)。有一个缺点:您可能指向与该用户无关的电话。 on update 触发器可能会检查这一点。