通常,當您有一個具有selfrefernece的表(例如樹中)時,您有一個屬性作爲外鍵,它指向表的主鍵。 (如在從文檔的Adjacency List Relationships例子)SQLAlchemy中的物化鍵
然而,我有一個天然的鍵,它的工作原理是這樣的: 「」是根
- 「一」,「B」,「C」 「ab」,「ac」等是「a」的孩子
- 「ba」,「bb」,「bc」等是孩子的孩子。 「b」的兒童
- 「aaa」,「aab」,「aac」等是「aa」的子女
因此,樹中每個級別都有一個字符,每個節點的子節點都是那些具有相同開始和添加一個字符的字符。這被稱爲「物化鑰匙」
我該如何使用SQLAlchemy映射器而不添加額外的屬性來引用父項?
注:我只是在閱讀關係感興趣,如果像node.children.append(child)
這樣的東西不工作,那很好。此外,我堅持版本0.4.8,但如果這是不可能在這個版本,但只有在一個較新的版本,我可能會努力更新。
編輯 我已經得到了關於SA mailinglist的第一個答案。它的工作原理,但它不是基於映射器,因爲我希望它是(例如使用eagerload)
那麼我不希望這樣做的原因很多,因爲我認爲效率會降低,而且我必須保存數十億個實體。然而,計算密鑰的想法可能是一個好主意。我必須看看是否可以使用PostgreSQL 9創建這樣的東西。 – Mene 2011-04-12 11:47:01
清除。我想知道,如果SQL是持久性存儲的正確類型... – van 2011-04-12 12:14:36
也許不是,但現在我必須忍受; D – Mene 2011-04-12 13:18:02