Sql 映射关系数据库中公共元素的子类

Sql 映射关系数据库中公共元素的子类,sql,Sql,我需要绘制一张市议会与其影响范围之间的关系图。每个城市都有一个影响区和一个分区。每个影响区域有几个分区。比如说, table city - influence_area: Foreign key to influence_area table - influence_subarea: Foreign key to influence_subarea table table influence_area: - name table influence_suberea - name -

我需要绘制一张市议会与其影响范围之间的关系图。每个城市都有一个影响区和一个分区。每个影响区域有几个分区。比如说,

table city
 - influence_area: Foreign key to influence_area table
 - influence_subarea: Foreign key to influence_subarea table

table influence_area:
 - name

table influence_suberea
 - name
 - influence_area: Foreign key to influence_area table

因此,很明显,定义中存在冗余。仅引用城市表中的分区是否是一种良好的做法?这种情况下的最佳做法是什么?

在您的模型中,子区域属于区域和城市,这是错误的

最好的办法是: -子区域仅属于区域 -这个地区只属于城市

这样:

table city
 - influence_area: Foreign key to influence_area table
 - influence_subarea: Foreign key to influence_area table

table influence_area:
 - name

table influence_suberea
 - name
 - influence_area: Foreign key to influence_area table

所有子区域都属于城市。影响区域仅1个属于城市。影响分区

为什么城市有一个外键指向分区(即每个城市有一个特殊分区)?此外,一个影响区域是否可以属于多个城市。。。还是没有城市?解决了这个问题。一个影响区域可能有多个城市。一个城市可能只有一个区域和一个分区。一个影响区域可能有多个子区域。我在sub_区域添加了一个外键,以显示我的建模问题。刚刚发现这个问题已经被调查过了。谢谢你有解决问题的建议吗?解决方案是:影响分区:外键影响分区表而不影响分区是的,但在这种情况下,我必须在城市中保留两个外键表,我试图避免这种情况,好像城市属于一个分区,我已经知道它的面积。所以,为什么不删除city.influence\u分区,让第一个子区域属于city.influence\u区域?城市