我想将用户的地址(country-region-town)存储到数据库中。该数据库是欧洲应用程序的核心。我有一张国家和国家的表格,我有两张桌子,一张用于地区,一张用于城镇。 那么,将用户地址存储到数据库中的最佳方法是什么?
我可以在foreach国家创建不同的表,并将它们“user_italian”,“users_french”重命名为“idUsers”和“idTown”列,我应该将它们与相应的城镇表连接起来。这很简单,但这种模式并不能说服我,因为表格太多了。
或者我可以使用“idUsers”和“idCountry”(外键)创建一个表“users_country”,我应该将区域和国家记忆到另一个带有“idUsers”,“region”和“town”的表“users_address”中,但是使用字符串日期类型,例如:
用户(idUsers:1,电子邮件:useremail@mail.com,psw:secrethashedpsw,token:secrettoken)
国家/地区(idCountry:1,国家/地区:“英国”)
users_country (idUsers:1,idCountry:1(请参阅英国))
users_address (idUsers:1,地区:“英格兰”,城镇:“伦敦”,邮编:SW1H 0TL(示例))
此模式也不能说服我,因为数据库不会被标准化,但实现起来很简单!而查询选择它也很简单。我可以创建关于“users_region”,“users_town”和“users_zip”的不同表格,但是使用字符串存储并不能说服我。
任何人都可以帮助我?
答案 0 :(得分:1)
每个国家一张桌子? NO!
拥有一个users
表。它会
计划A:地址以及城市+地区+国家/地区。
计划B:地址加上ID链接到(规范化的)城市表。 Cities
包含城市+地区+国家/地区。
规范化国家会增加复杂性而不会增加任何好处。