删除循环数据库关系

时间:2009-06-01 14:05:40

标签: postgresql relationship circular-reference

如何摆脱我的数据库结构中的循环关系。我有一个名为Item的实体。项目可以具有子项目(循环关系)。一个项目可以有多个费率,具体取决于它的财政年度(为此目的创建的rate_per_year实体和1米关系)。如果一个项目有子项目,那么它可能没有费率(如果创建了一个子项目,我需要破坏这种关系)。任何帮助将不胜感激。

提前完成

2 个答案:

答案 0 :(得分:1)

如果item->子项链可以在多个级别继续,那么你没有真正的选择,但它就像你拥有它一样。如果只有顶级项目可以包含子项目,那么您可以将结构划分为两个层次,可能itemgroup只有item可以有费率,并且可能或可能没有group

答案 1 :(得分:0)

您所描述的是零件爆炸问题。当我在大学时,这是关系数据库无法解决的问题,并且是面向对象数据库的主要卖点之一。现在看来事情可能已经发生了变化,具体取决于您使用的是哪个数据库。

此页面看起来很有趣 Sql Anywhere Users Guide - Parts explosion problems,但遗憾的是您没有提到您使用的是哪种RDBMS。它似乎也得到SQL Server 2005的支持,所以也许你会很幸运。尝试搜索“递归SQL查询”以及您正在使用的任何数据库。

祝你好运