我的应用程序有用户和属性,两者都可以有地址。该应用程序还需要进行大量分析,我们需要能够获取属于特定城市、邮政编码、县或州的所有地址。
存储国家/地区、州和县很容易,因为一个州恰好属于 1 个国家/地区,而一个县恰好属于 1 个州。
但是,当存储邮政编码和城市时,问题变得有点复杂。一个州可以有多个邮政编码,一个邮政编码可以属于多个州。邮政编码和城市也可以属于多个州/县。哎呀,有些城市和邮政编码甚至可能不属于华盛顿特区等任何县。
是否有一个既定的数据库模型可以用来确保我考虑到所有边缘情况,同时允许按每种类型进行查询?
最佳答案
However, when storing zip codes and cities, the problem becomes a bit more complex.
首先,您需要创建国家、城市、州和邮政编码。
很明显,States 和 Zip_codes 实体之间存在 M:M 关系,因此您需要创建一个新表,我们将其命名为 States_Zip_codes,其中包含两个外键 State_id FK 和 Zip_Id as FK。
A zip codes and cities can also belong to multiple states/counties.
在本例中,关系是一对多,因此 Zip_code_id(Zip_codes 表的主键)是 States 表中的 FK,依此类推。
我不明白关系的本质,它是多对多还是一对多
some cities and zips might not even belong to any counties like Washington, DC
因此在 city_name 字段(属性)中它将为空
希望有帮助。 .
关于mysql - 在mysql中存储地缘政治数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50825961/