想象一下,您在数据库中有一个树数据结构,如下所示:
Level:
id nextlevel desc
1 2 company
2 3 department
3 4 group
Nodes:
id level parentnode
0 1 null -> the company
1 2 0 -> dep 1
2 2 0 -> dep 2
3 3 2 -> group 1.1
4 3 2 -> group 1.2
我想存储有关每个级别的信息。也就是说,有关公司,部门和团体的信息。 ¿你会怎么做?
我想我可以在Level表中添加一个列,用于存储与表相关的列。表格如下:
Level:
id nextlevel desc table
1 2 company company
2 3 department deparments
3 4 group groups
然后创建这些表:
Company:
id level desc etc...
1 1 Acme Company
我一直在考虑一个更好,更优雅的解决方案,但我找不到。 有人能帮我吗?这是一个很好的解决方案吗?
问候。
答案 0 :(得分:1)
关系方式是拥有单独的公司,部门和组表。如果要在公司,部门和组表中存储不同的元素,则它们应该是单独的表。
公司表只有一个公司ID字段作为主键。你会有一行,或者在一个集团的情况下,有多行。
部门表将使用部门ID字段作为主键。公司ID是外键。
组表将具有组ID作为主键。部门ID是外键。如果有多个公司ID行,公司ID可以是外键。
要获得所有或部分公司,部门,组实体,您可以加入主键及其关联的外键。