Data structures 在MySQL上存储城市、州和国家的最佳方式是什么?

Data structures 在MySQL上存储城市、州和国家的最佳方式是什么?,data-structures,database-design,architecture,structure,Data Structures,Database Design,Architecture,Structure,当我必须在表格中存储有关城市、州和用户所在国家的信息时,下面哪种方法是最好的 在用户表中有“州”、“城市”和“国家”字段 在用户表中有“id_city”,并且: 带有“id”、“name”和“id\u state”的表“cities” 带有“id”、“name”和“id\u country”的表“states” 带有“id”和“name”的表“countries” 第二种方法将避免在错误的州和国家拥有错误的城市,如: “穆尼克”,“纽约”-“巴西” 但当我需要选择一个用户的国家,我需要3个加

当我必须在表格中存储有关城市、州和用户所在国家的信息时,下面哪种方法是最好的

  • 在用户表中有“州”、“城市”和“国家”字段
  • 在用户表中有“id_city”,并且:
    • 带有“id”、“name”和“id\u state”的表“cities”
    • 带有“id”、“name”和“id\u country”的表“states”
    • 带有“id”和“name”的表“countries”
  • 第二种方法将避免在错误的州和国家拥有错误的城市,如:

    “穆尼克”,“纽约”-“巴西”

    但当我需要选择一个用户的国家,我需要3个加入

    那么,最好的方法是什么呢?

    坚持选择2


    实际上,基于用例和应用程序用户数量。这不是问题。如果是,缓存会有所帮助(这些数据是一种静态数据,它们的变化很少见)。

    我会选择选项2。您希望维护数据的引用完整性。选项2。节省光盘空间。