一对多关系在 ZODB 中不起作用,因为列表是可变的。他们说解决方案是持久映射或持久列表或 BTree。有人可以告诉我它到底是如何完成的
最佳答案
我不确定我是否理解你的问题。
PersistentMapping 的行为就像字典一样,但它是持久的。 PercientList 只是一个持久列表。
BTree 也充当字典,但它针对大量对象进行了优化。如果您必须处理许多对象,则不应使用 PercientMapping 或 PercientList。
对于 ZODB 关系,您可以使用 object references就像您通常在 Python 中所做的那样。
如果您需要的话,ZODB 甚至支持弱引用。
还有其他专门的包,例如 z3c.relationfield,可以处理 ZODB 中的关系,例如,如果您需要按关系搜索,但我从来不需要使用它们。
关于zope - 如何在 ZODB 中实现持久列表或持久映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709776/