【问题标题】:Information related to Node in a Database Structure for Tree Data Structure树形数据结构的数据库结构中与节点相关的信息
【发布时间】:2010-06-29 12:04:01
【问题描述】:

假设您在数据库中有这样的树形数据结构:

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

我一直在考虑更好、更优雅的解决方案,但没有找到。 有人能帮我吗?这是一个好的解决方案吗?

问候。

【问题讨论】:

    标签: sql database-design tree


    【解决方案1】:

    关系方式是拥有单独的公司、部门和组表。如果你想在 company、department 和 group 表中存储不同的元素,那么它们应该是单独的表。

    公司表只有一个公司 ID 字段作为主键。您将拥有一排,或者在企业集团的情况下为多排。

    部门表将有一个部门 ID 字段作为主键。公司 ID 将是外键。

    组表将以组 ID 作为主键。部门 ID 将是外键。如果有多个公司 ID 行,则公司 ID 可以是外键。

    要获取所有或部分公司、部门、组实体,您需要对主键及其关联的外键进行联接。

    【讨论】:

      猜你喜欢
      • 2010-10-30
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多