如何模型贝叶斯的网络或者更一般地说,一个针对加权图,在SQL?
-
11-07-2019 - |
题
我发现了一些文章在网上提供的例子如何模型图表的各种各样(Dag,特别是)在SQL,但他们似乎都极为复杂,鉴于相对简单的什么他们建模。
是有一个最好的标准的方式这样做?我目前的想法是这样的:
create table node (
id int not null auto_increment,
name TEXT
)
create table edge (
from_node int not null,
to_node int not null,
weight float
)
是的有什么错?任何人知道的更好(更强大,也许可)的方式?
解决方案
这将是一个相当合理的方法。SQL并没有真正做递归结构,虽然一些系统,例如Oracle或SQL服务器已经递归的查询功能。
虽然你可能找到一个结构,该结构的工作更好地为特定类型的搜索,我不认为你会找到一个明显更好的结构,在一般的情况。如果应用程序的要求都限于以这种方式,这种优化可能会带给你的利益。
作为一个贝网络是一个 针对环图 (DAG),一个纯粹的递归父子关系没有足够的模拟网络(即一个节点可以有一个以上的父母),因此M:M关系的类型你描述的将是必要的。
各种各样的'SQL为利己'的书 乔Celko 得到一个很好的概述的技术用于实现和查询的分级和图表的结构在SQL。这些是迄今为止最好的资源上的问题,我知道。 强烈建议。
不隶属于 StackOverflow