在数据库中设置选定行的最佳实践

时间:2018-03-28 08:00:54

标签: mysql database database-design

我的数据库中有一个名为地址的表,用于存储所有属于该用户的送货地址。用户可以选择他们的主要地址。

我的问题是,这是更好的做法:

  • 为主要地址选择创建单独的表(例如,带有 user_id address_id 外键的名为 primaryaddress 的表。行存在于此表中,它链接到用户的主要地址)?

  • 要在地址表中创建一个跟踪主地址的值(一个名为 primary 的布尔值,可以是true还是false)?

1 个答案:

答案 0 :(得分:2)

就个人而言,我会在AddressType表上添加Address字段,并对UserId和地址类型进行唯一约束,以便用户可以拥有多个地址但只有一个每种类型,即小学,中学,其他等。

这使您可以选择在将来使用其他地址类型,并且不会将您锁定为布尔标志。然后,如果您确定用户可以拥有许多主地址,则可以删除约束并实现逻辑来处理此问题。