数据库
首页 > 数据库> > 客户多个地址和默认地址的MySQL数据库设计

客户多个地址和默认地址的MySQL数据库设计

作者:互联网

我正在使用Mysql和INNODB引擎创建电子商务的数据库结构.

要点1:要为客户创建多个地址,我有此表

我是否以正确的方式进行操作?以及如何存储默认地址(在哪个表中)?

第2点:我还有一个名为“ Suppliers”的表,我应该将其连接到具有“ supplier_address”表的地址,还是有更好的方法?

第三点:城市和国家的餐桌如何?我应该添加一些东西吗?也许这两个字段之间的另一个表中的一个“区域”字段?

解决方法:

在我看来,您使事情变得太复杂了.无需使您的地址架构过于规范化.我见过的大多数处理多个客户地址的系统都有一个像您一样的客户表,然后有一个地址表,如下所示:

 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_id,address_ordinal)的组合.如果地址是主要地址,则主要字段为true.

关于供应商的问题,您可能需要创建一个称为“ contacts”的通用表,并为客户和供应商提供contact_ids.

如果您的系统包含一个包含(邮政编码,地区,省)行的参考表(也许是您从数据供应商处购买的东西),则可以使用该表来填充地址表.但是您应该避免强迫您的地址仅包含硬编码的邮政编码:那些参考表很快就会过时.

标签:database-design,e-commerce,mysql,database
来源: https://codeday.me/bug/20191030/1964393.html