MySQL数据库架构..创建一个属性表,这些属性对于不同的表是常见的,以便将来更容易编辑

时间:2017-02-10 02:57:38

标签: mysql database-design

我是数据库设计的新手。我目前正在设计一个具有

的模式

客户表:

名称|电话|电子邮件|密码| address_one | address_two |城市|街道|邮政|国家

出口表:

名称|电话| address_one | address_two |城市|街道|邮政|国家

帐户表:

名称|电话| address_one | address_two |城市|街道|邮政|国家

将address_one,address_two,city,street,postal和country分隔到名为Address Table的新表是一个好主意。尽管他们的关系是一对一的,就像下面提到的那样。

地址表:

address_one | address_two |城市|街道|邮政|国家

我想将其拆分为新表的原因是因为在Code级别,我想创建一个Model并拥有特定于Address Table的方法。因此,将来当地址模型的任何属性发生变化时,我可以单独更改此表,并且它将更改所有三个提到的表Customer,Outlet和Account。而不是添加单个字段。

2 个答案:

答案 0 :(得分:0)

从绩效角度来看 - 不,这不是最好的主意。

虽然它只会以非常大的数量和/或非常严格的响应时间要求弹出。

从架构的角度来看,尤其是当地址可以被超过1个引用实体重用,和/或以任何方式单独处理时 - 是的,这是有意义的(这似乎或多或少是你的情况)

基本上,您已经在问题中自己回答了自己的问题。 : - )

答案 1 :(得分:0)

你将如何处理地址?你会简单地将字段转移到信封吗?如果这就是全部,它可以是一个列,其中包含换行符。

或者您会在某个国家搜索奥特莱斯吗?

一方面,布置需要在模式中的列非常重要。另一方面,考虑将应用于模式的查询非常重要。

无论如何,1:1很少是一个好主意。

您的地址表,如果您这样做,则需要AUTO_INCREMENT PRIMARY KEY