none
sql数据库,在基于树状结构的关系表的基础上如何设计一个网状结构的问题? RRS feed

  • 问题

  • 标题可能有些绕口,但是我以我的描述水平只能这么描述标题。详细说明一下,设计的目的是存储wpf应用程序的treeView控件所展示的数据的功能。基于树状结构的基础上设计一个网状结构,举个例子说明下该功能的目的,使节点a有b节点,节点d有b节点。这两个节点中的b节点就是同一个对象,不是两个相同的对象。要做这个功能,但是这个功能涉及的数据库关系表的设计。碰到了一些问题。想请大家帮我解决下

    我用截图说明一下

    这是excel表用弄一个树状结构的关系表的简易说明,现在我要做一件事,节点表名为5 的那行,他的上一个节点表名是3。我insert一行,插入的数据是 insert into  xxx values (5,2,'ssss','第二层'),然后在插入一个数据 insert into  xxx values (6,5,'ssss','第二层?还是第三层?'),

    看着这张表,层次关系乱掉,如何解决?或者不设置层次关系?另外这个问题怎么解决?a节点里有b节点,b节点里有c节点,c节点有a节点。这个例子所指向的问题要如何解决?以及还有什么可能会出现的问题?

    我的需求是将两个或多个分类中【完全重复】的信息或数据都用一个数据表存起来,想使这些【完全重复】的信息或数据的节点指向同一个数据表,这样就不用再创造一个数据表去存重复的信息或数据。然而我担心一个问题,就是【a节点内部会有a节点】的悖论问题,我想要个限制,就是【x节点之下的所有节点都不能是x节点;x节点之下的所有节点都不能是和x的并列节点】。

    2016年10月23日 4:32

答案

全部回复

  • 你想复杂了。

    所有的节点都根据上级节点层次+1即可,其他不用管哈。


    family as water

    2016年10月23日 9:57
  • 你想复杂了。

    所有的节点都根据上级节点层次+1即可,其他不用管哈。


    family as water


    你想简单了,这是图,不是树。

    想不想时已是想,不如不想都不想。

    2016年10月24日 5:03
    版主
  • 这个本来就没有层级的。

    不过具体怎么解决,其实得看你的用途了。


    想不想时已是想,不如不想都不想。

    2016年10月24日 5:03
    版主
  • 这个本来就没有层级的。

    不过具体怎么解决,其实得看你的用途了。


    想不想时已是想,不如不想都不想。

    我的需求是将两个或多个分类中【完全重复】的信息或数据都用一个数据表存起来,想使这些【完全重复】的信息或数据的节点指向同一个数据表,这样就不用再创造一个数据表去存重复的信息或数据。然而我担心一个问题,就是【a节点内部会有a节点】的悖论问题,我想要个限制,就是【x节点之下的所有节点都不能是x节点;x节点之下的所有节点都不能是和x的并列的节点】。难道要用编程语言去解决?

    2016年10月24日 6:21
  • 你好,轮回的齿轮

    根据你的描述,如前面提到的,更像是个网状结构的关系。 你可以参考如下的链接,它描述了如果在SQL Server上创建网状结构关系的表设计。

    https://www.simple-talk.com/sql/t-sql-programming/mimicking-network-databases-in-sql/

    Best Regards,

    Albert Zhang


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年10月24日 11:41
  • 要限制图不能回环和并列,这个只能用代码来解决,当然你可以用T-SQL判断,也可以用其它编程语言来判断。

    另外,这个不叫悖论,只是你的规则而已。


    想不想时已是想,不如不想都不想。

    2016年10月25日 7:54
    版主