mysql - 如何组织数据库来存储父/子关系

标签 mysql database-design

我开发了一个网站,其中有城市群的概念。其中一个组由父城市和子城市定义。 所以我需要存储父城市和子城市之间的关系(1:n 关系)。

我想知道这是为此定义的最佳模式。 例如,我们将有:Paris(父级)--> Neuilly(子级)、Vincennes(子级)、St Mandé(子级)等...

最佳答案

也许是这样的:

--> cities
- id (int PK)
- name (varchar)
- parent_id (int default 0 )

然后值如下:

- 1,Paris, 0
- 2, Neuilly, 1
- 3, Vincennes, 1
- 4, St Mandé, 1

要建立您的列表:

select * from cities as c0 join cities as c1 on c1.parent_id = c0.id;

关于mysql - 如何组织数据库来存储父/子关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26337699/

相关文章:

ruby-on-rails - 如何存储与餐厅关联的城市和社区?

mysql - 像 npm 这样的服务的架构是怎样的?

mysql - 零售体育用品公司的数据库模型

php - PDO bindValue 适用于其他输入,为什么这个不行?

mysql - SQL 'IN' 和 'NOT IN' 在一起

mysql - 错误 #1064 添加带小数秒的 MySql 日期时间默认值

mysql - 帮助理解数据库架构/设计

mysql - SQL 语句对相应的条目进行计数,同时具有严格的顺序(逻辑)

php - 使用连接从多个表中选择列

php - 设置和配置 MySQL 数据库以存储有关十亿个唯一 URL 的信息