我正在使用 Mysql 和 INNODB 引擎创建电子商务的数据库结构。
Point 1:要为客户创建多个地址,我有这个表
我以正确的方式做吗?我应该如何存储默认地址(在哪个表中)?
Point 2:我有另一个名为“供应商”的表,我应该将其连接到带有“供应商地址”表的地址还是有更好的方法?
Point 3:表格中的城市和国家怎么样?我应该添加一些东西还是可以?也许两者之间的另一个表中的字段“区”?
在我看来,你把这件事搞得太复杂了。没有必要让您的地址架构如此过度规范化。我见过的大多数处理多个客户地址的系统都有一个像您一样的客户表,然后有一个地址表,如下所示:
customer_id
address_ordinal (small number for each customer: 0,1,2,3 etc).
primary (boolean)
address_1
address_2
locality (city, village, etc)
province (state, etc)
postcode (zip, postcode etc)
country
customer_id
是一个外键customer
桌子。主键是 (customer_id
, address_ordinal
). The primary
列是true
如果该地址是主要地址。
关于您有关供应商的问题,您可能需要创建一个名为“联系人”的公用表,并为您的客户和供应商提供 contact_ids。
如果您的系统包含一个包含(邮政编码、地区、省)行的参考表(可能是您从数据供应商处购买的),您可以使用它来帮助填充您的地址表。但您应该避免强制您的地址仅包含硬编码的邮政编码:这些参考表很快就会过时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)