建模树或图 SQL:如何分离节点属性和节点信息
我正在建模一个概念本体,例如 polytree。
使用 边缘列表模型 它将是:
CREATE TABLE nodes(
nodeID CHAR(1) PRIMARY KEY
);
CREATE TABLE edges(
childID CHAR(1) NOT NULL,
parentID CHAR(1) NOT NULL,
PRIMARY KEY(childID,parentID)
);
我的问题是我怎样才能在 SQL 中对其进行建模,以便节点可以具有其他属性,例如“类型”。例如。
(father-node) **Music**
有
(child-node) **jazz** [type: genre], **soul** [type: genre]
(child-node) **concert** [type: performed], **DJ set** [type: performed]
I'm modelling a conceptual ontology like a polytree.
Using the edge list model it would be:
CREATE TABLE nodes(
nodeID CHAR(1) PRIMARY KEY
);
CREATE TABLE edges(
childID CHAR(1) NOT NULL,
parentID CHAR(1) NOT NULL,
PRIMARY KEY(childID,parentID)
);
My problem is how can I model it in SQL so that nodes can have other properties like "types". Eg.
(father-node) **Music**
has
(child-node) **jazz** [type: genre], **soul** [type: genre]
(child-node) **concert** [type: performed], **DJ set** [type: performed]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该查看 Celkos 嵌套集模型, http://mikehillyer.com/articles /managing-hierarchical-data-in-mysql/
但无论如何只需将流派 id 添加到您的节点表中
You should check out Celkos nested set model, http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
But anyway just add genre id to your nodes table