【发布时间】:2014-05-07 20:44:52
【问题描述】:
通常当你有一个带有自引用的表时,比如在树中,你有一个属性作为外键,它指向表的主键。 (如文档中的Adjacency List Relationships 示例)
但是,我有一个自然键,它的工作方式如下: "" 是根
- “a”、“b”、“c”等是“”的子代
- “aa”、“ab”、“ac”等是“a”的子代
- “ba”、“bb”、“bc”等都是“b”的子代
- “aaa”、“aab”、“aac”等是“aa”的孩子
因此,树中的每一层都有一个字符,每个节点的子节点都是具有相同开头并添加一个字符的子节点。这称为“物化密钥”
在不添加额外属性来引用父级的情况下,如何使用 SQLAlchemy 映射器执行此操作?
注意:我只对阅读关系感兴趣,如果 node.children.append(child) 之类的东西不能正常工作。我也坚持使用 0.4.8 版本,但是如果在此版本中无法做到这一点,而只能在较新的版本中,我可能会努力更新。
编辑 我在SA mailinglist 上得到了第一个答案。它可以工作,但它不像我希望的那样基于映射器(例如使用 eagerload)
【问题讨论】:
标签: python sqlalchemy