Sql 数据库计算树结构,规则复杂
我需要在数据库中映射计算树。 假设我有以下10个实体:Sql 数据库计算树结构,规则复杂,sql,sql-server,database,tree,hierarchy,Sql,Sql Server,Database,Tree,Hierarchy,我需要在数据库中映射计算树。 假设我有以下10个实体: id, name, unit 1, "Household", "USD" 2, "Household income", "USD" 3, "Household expences", "USD" 4, "Mother income job", "USD" 5, "Father income
id, name, unit
1, "Household", "USD"
2, "Household income", "USD"
3, "Household expences", "USD"
4, "Mother income job", "USD"
5, "Father income", "USD"
6, "Father income job", "USD"
7, "Father income investment", "USD"
8, "Father investment portfolio", "USD"
9, "Father investment yield", "Percentage"
10, "Income from job", "USD"
规则是每个实体要么是一个叶级,要么正好有两个子级
即:
- 每一位家长正好有两个孩子李>
- 每个孩子有一对多的父母
- 每个实体有零个或两个子实体李>
- 每个实体都有零个、一个或多个父实体
我可以处理从数据库外部正确插入的数据。也就是说,不需要进行约束或检查,以确保每个家长有两个孩子。关系数据库是基于集合的,而不是基于树或图。我认为使用图形数据库会更好。@duffymo谢谢,但我只能访问SQL Server 2005:/Trees是递归的。您需要一个带有主键(当然)和一个指向自身的外键的表。至于规则,如果可能的话,它们应该表示为约束。我想您会发现这个实现很难、很复杂,而且很难维护。也许这个答案可以帮助您:
"Father income"
"Income from job"
level, name, unit, operator
0, "Household", "USD", "Minus"
1, "Household income", "USD", "Plus"
2, "Mother income job", "USD", NULL
2, "Father income", "USD", "Plus"
3, "Father income job", "USD", NULL
3, "Father income investment", "USD", "Multiply"
4, "Father investment portfolio", "USD", NULL
4, "Father investment yield", "Percentage", NULL
1, "Household expences", "USD", NULL
level, name, unit, operator
0, "Father income investment", "USD", "Multiply"
1, "Father investment portfolio", "USD", NULL
1, "Father investment yield", "Percentage", NULL
level, name, unit, operator
0, "Income form job", "USD", "Plus"
1, "Mother income job", "USD", NULL
1, "Father income job", "USD", NULL