【发布时间】:2013-12-17 16:57:54
【问题描述】:
我需要为客户存储多部手机和运输详细信息。此外,当客户制作和订购时,他将能够从输入的电话/运输详细信息中进行选择。
例如,客户 1 可以有 3 部手机和 5 条送货详情。在订购时,他应该选择一部手机和一个送货地点。
从另一方面来说,我认为大多数人都会有一部手机和一个送货地点。
现在,我有两种方法。
-
表用户
表地址
表 UserAddress(来自用户和地址的多对多)
桌面电话
表 UserPhones(来自用户和电话的多对多)
表顺序 - 两个字段:电话和地址,它们从适当的表中填充(作为字符串)。缺点是存储的是字符串,而不是引用。因此,空间利用率低。
-
表用户
表地址
表 UserAddress(来自用户和地址的多对多)
桌面电话
表 UserPhones(来自用户和电话的多对多)
表 UserInfo(来自 UserAddress 和 UserPhone 的多对多)
表顺序 - 一个字段:引用 UserInfo缺点是用户 ID 在 UserAddress 和 UserPhones 两个表中。
实现这种设计的最佳方式是什么?
【问题讨论】:
标签: database-design