3

我想为给定的父母创建一个包含 N 个孩子的级联树/列表,其中孩子也可以成为父母。

给定以下数据结构:

国家类型=1;颜色类型=3;StateType=5
6,7,8 = {Can, US, Mex}
10, 11, 12 = {Red, White, Blue}
20,21,22= {California, Florida, Alberta}

TreeID  ListTypeID  ParentTreeID           ListItemID   
1            1       Null                   6   (Canada is a Country)
2            1       Null                   7   (US is a Country)
3            1       Null                   8   (Mexico is a Country)
4            3       3                      10  (Mexico has Red)
5            3       3                      11  (Mexico has White)
6            5       1                      22  (Alberta is in Canada)
7            5       7                      20  (California is in US)
8            5       7                      21  (Florida is in US)
9            3       6                     10  (Alberta is Red)
10           3       6                    12  (Alberta is Blue)
11          3       2                      10  (US is Red)
12          3       2                      11  (Us is Blue)

这将如何在 Fluent NHibernate 类中表示?

一些方向将不胜感激。

谢谢。

4

2 回答 2

1

如果这个模型没有比这更复杂,我会选择一个简单的 TreeNode 实体,它有一个 NodeType 枚举属性、一个 Name 属性和一个 TreeNode 类型的 ParentNode 属性。

如果您打算为不同的节点类型增加一些复杂性,我会选择一个由 NodeType 鉴别器子类化为不同节点类型的 TreeNode 实体。

于 2010-12-21T10:51:04.350 回答
0

树解决方案很好,但是在这种情况下,分离类型的数据模型效果最好。

例如,我有一个给定的列表。然后,我想将该列表中的每个项目与多个项目相关联——甚至可以是另一个列表。

因此,我有一种称为 LinkedListItems 的类型——它们本质上是项,只是它们包含一条额外的信息——ParentID 字段。

这比树型数据模型更有效,因为我现在可以将辅助列表项与多个主列表项相关联,而树模型将表示 1..* 关系。

于 2011-01-14T19:39:20.483 回答