我是数据库设计的新手。我目前正在设计一个具有
的模式客户表:
名称|电话|电子邮件|密码| 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。而不是添加单个字段。
答案 0 :(得分:0)
从绩效角度来看 - 不,这不是最好的主意。
虽然它只会以非常大的数量和/或非常严格的响应时间要求弹出。
从架构的角度来看,尤其是当地址可以被超过1个引用实体重用,和/或以任何方式单独处理时 - 是的,这是有意义的(这似乎或多或少是你的情况)
基本上,您已经在问题中自己回答了自己的问题。 : - )
答案 1 :(得分:0)
你将如何处理地址?你会简单地将字段转移到信封吗?如果这就是全部,它可以是一个列,其中包含换行符。
或者您会在某个国家搜索奥特莱斯吗?
一方面,布置需要在模式中的列非常重要。另一方面,考虑将应用于模式的查询非常重要。
无论如何,1:1很少是一个好主意。
您的地址表,如果您这样做,则需要AUTO_INCREMENT PRIMARY KEY
。