你如何构建一个像 craigslist 这样按位置组织帖子的数据库?

use*_*500 5 mysql database-design

我是数据库和网络开发的新手,所以我只是在寻找外行的解释。不需要具体的代码,只需要理论。我了解 OneToMany 和 ManyToMany 关系,因此无需解释。我只是想知道有人会如何处理按位置分类的帖子,就像 craigslist 那样,例如。国家 > 州 > 市 > 县。

假设您有一个 PostTable,其中包含站点范围内的所有帖子。此表中是否有 4 个字段专用于 CountryID、StateID、CityID、CountyID?或者您是否有 1 个字段列出 CountyID,然后根据该 ID 确定它属于哪个国家/地区、州和城市?

小智 2

创建一个名为 states 的表。

创建一个名为“城市”的表,该表与名为“州”的表建立多对一关系。

然后在您的帖子表中,您有与城市表的多对一关系。

然后,您可以使用 post.city.state.name 之类的语法来获取帖子的州名称或仅获取城市的 post.city.name 。