【发布时间】:2011-04-08 14:03:57
【问题描述】:
我有以下locations 表:
----------------------------------------------------------
| ID | zoneID | storeID | address | latitude | longitude |
----------------------------------------------------------
还有phones 表:
-----------------------
| locationID | number |
-----------------------
现在,请记住,对于任何捐赠商店,最多可以有五个电话号码。顺序无关紧要。
最近我们需要添加另一个表,其中包含与商店相关的信息,其中还包括电话号码。
现在,此新表不应用 locationID,因此我们无法将电话存储在以前的电话表中。
最终,保持数据库规范化需要 2 个新表和总共 4 个连接来检索数据。对其进行非规范化会使旧表呈现为:
----------------------------------------------------------------------------------
| ID | zoneID | storeID | address | latitude | longitude | phone1 | ... | phone5 |
----------------------------------------------------------------------------------
总共有 2 个表和 2 个连接。
我不喜欢拥有data1、data2、data3 字段,因为这可能会带来巨大的痛苦。那么,你的意见是什么。
【问题讨论】:
标签: sql database database-design data-modeling denormalization