我想为给定的父级创建N个子级的级联树/列表,其中子级也可以成为父级。
鉴于以下数据结构:
CountryType = 1;的ColorType = 3; StateType = 5
6,7,8 = {Can,US,Mex}
10,11,12 = {红色,白色,蓝色}
20,21,22 = {加州,佛罗里达,艾伯塔省}
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类中表示它?
有些方向值得赞赏。
感谢。
答案 0 :(得分:1)
如果这个模型没有比这复杂,我会选择一个简单的TreeNode实体,它具有NodeType枚举属性,Name属性和TreeNode类型的ParentNode属性。
如果你计划为不同的节点类型增加一些复杂性,我会选择一个由NodeType鉴别器子类化为不同节点类型的TreeNode实体。
答案 1 :(得分:0)
树解决方案很好,但在这种情况下,分离型数据模型效果最好。
例如,我有一个给定的列表。然后,我想将该列表中的每个项目与多个项目相关联 - 这甚至可能是另一个列表。
因此,我是一个名为LinkedListItems的类型 - 它本质上是项目,只是它们包含一条额外的信息 - 一个ParentID字段。
这比树类型的数据模型更好用,因为我现在可以将辅助列表项与多个主列表项关联起来,而树模型则表示1 .. *关系。