我有国家,地区,县,城镇数据,我目前正在决定2种架构设计(如果有更好的架构设计,请告诉我们)。
我首先想到了
国家
区域
县
镇
然而,这项工作是否要让一个国家的所有城镇都有3个内部联接来进行过滤。我想这可能没事,但可能很贵?
另一种设计是:
国家
区域
县
镇
这样可以说所有分层数据都在底部,你可以重新开始,但是如果你想让一个国家的所有地区都搞砸了,我们就会怀疑第一个设计是否最好。
您认为最佳的架构设计是什么?
答案 0 :(得分:2)
最佳数据库设计取决于数据的使用方式。
如果这是非常静态的数据,一次全部更新,外部引用都是城镇,那么我可能会去一个非规范化的维度。也就是说,将信息存储在一行中:
在上述情况下,不需要县(区域和国家)的ID(假设)。
如果数据是作为具有单独ID的单独表提供的,并且这些表可以单独更新或逐行更新,则每个表都有意义。将所有ID放入towns
表可能是也可能不是一个好主意。在插入和更新数据时,您必须验证和维护层次结构。
如果您需要每个级别的ID,那么您应该具有适当的表结构来声明外键约束。但是,这可能会变得复杂。外部实体是否具有可以处于任何级别的“地理”属性?外部人员总是知道它将被称为什么级别?
换句话说,您需要知道如何使用数据来定义适当的数据模型。