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

时间:2014-10-13 10:21:14

标签: mysql database-design

我开发了一个有城市群概念的网站。如果一个群体由城市父母和城市定义为孩子。 所以我需要存储父城和子城之间的关系(1:n关系)。

我想知道是为此定义的最佳架构。 例如,我们将:巴黎(父母) - > Neuilly(小孩),Vincennes(小孩),StMandé(小孩)等...

2 个答案:

答案 0 :(得分:1)

可能是这样的:

--> 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;

答案 1 :(得分:0)

您将使用自我加入

table :=> cities
fields :=>
- id (int PK)
- name (varchar)
- parent_city_id (int default 0 )

因此,将使用自连接,其中Join将基于c1(城市别名table1)的id加入c2(城市别名table2,视为第二个表)。