我正在建模像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]
您应该查看Celkos嵌套集模型,http: //mikehillyer.com/articles/managing-hierarchical- data-in-mysql/
但是无论如何,只要向您的节点表添加类型ID
CREATE TABLE nodes( nodeID CHAR(1) PRIMARY KEY genre_id );