【发布时间】:2014-10-28 12:59:15
【问题描述】:
参考地区和邮政编码
每个邮政编码可以多一个地区 每个地区可以有一个或多个邮政编码
因此,这是否应该创建为具有第三个连接表“区域”的 M:M 场景?
邮政编码表将只有一列作为邮政编码本身,并且地区表也将只有一列作为地区名称。
另一种方法是包含两者的单个表,但会导致重复数据。
提前谢谢...
【问题讨论】:
标签: normalization
参考地区和邮政编码
每个邮政编码可以多一个地区 每个地区可以有一个或多个邮政编码
因此,这是否应该创建为具有第三个连接表“区域”的 M:M 场景?
邮政编码表将只有一列作为邮政编码本身,并且地区表也将只有一列作为地区名称。
另一种方法是包含两者的单个表,但会导致重复数据。
提前谢谢...
【问题讨论】:
标签: normalization
您提出的问题主要是发表意见。根据您计划如何查询数据的目标,有许多因素可能会导致您降低标准化。
传统规范化通常表明 M:M 方案是正确的,但这会使应用程序不断地连接 3 个表来关联信息,如果应用程序频繁执行此操作,这可能不是最有效的。
如果伴随着设计良好的非聚集索引,那么具有重复数据的单个表的替代方案可能是最佳的,这样可以最大限度地减少连接并在执行计划中优化索引搜索。但是,由于非聚集索引,存储会被征税,并且应用程序当然必须知道返回的数据可能会被欺骗。但是,如果重点只是验证某个地区是否在邮政编码范围内,则这是意料之中的。
简而言之,完美世界中存在教科书式的答案,然后实际上可能存在性能、存储、查询优化和应用程序趋势等其他因素,这些因素可能会使较低范式在某些情况下更可取。
【讨论】: