我正在使用 PHP 和 MySQL 开发一个用户可以注册的网站。在注册表中,他们需要填写国家、州和城市。我想知道将它保存在我的数据库中是否是个好主意。我很困惑,因为 Facebook、谷歌和其他公司有自动完成表格,这些输入标签会向您建议国家、州甚至城市。
最佳答案
您不应该单独保存所有三个,例如 country_id
、state_id
和 city_id
。原因是这是冗余信息。一个城市隐含地属于一个州属于一个国家。您不会通过将它们保存为单独的值来获得任何信息,而只会引入混淆数据的风险(因为您可以将Japan、Washington、Berlin 保存为一个集合,这是无效且不一致的信息)。
您应该在您的数据库中创建一个分层树。城市有母国有母国。然后你只需要询问用户他们的城市,所有其他信息都是隐式的。从哪里获取数据是另一个主题。例如,您可以尝试使用 Google 的 API。
关于php - 什么更好?国家、州和城市是否在数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605860/