【发布时间】:2018-06-03 04:54:40
【问题描述】:
我有一个名为 Node.js 的表。每个节点都有许多节点类型的子节点。此外,一个 Node 对象有许多父对象。我还做了一个算法来寻找兄弟姐妹(具有相似父母的节点)
如何制作?我要为他们单独制作一张桌子吗?还是我把它放在同一张桌子上?以下是我尝试这样做但显然失败的方法:
class Node(Model):
id = Column(String, primary_key=True)
name = Column(String)
parent_id = db.Column(db.String, db.ForeignKey('node.id'))
children = db.relationship('node', remote_side=[id], uselist=True)
parents = db.relationship('node', remote_side=[id], uselist=True)
siblings = db.relationship('node', remote_side=[id], uselist=True)
我不知道如何做到这一点。
我实际上考虑过为这个节点对象使用 graphDB。以及其他具有经典 SQL 的表,但我不确定是否值得大惊小怪
【问题讨论】:
-
您是否尝试实现Adjacency list relationships?
-
@daveruinseverything 不完全。根据文档邻接列表是“树状”。我想要一个“类似图形”的结构。并根据您提供的暗示。每个节点都有一个父节点,我喜欢每个节点都有很多父节点
标签: python postgresql flask sqlalchemy flask-sqlalchemy