我将Django与以下(简化)模型一起使用:
class Entity(models.Model):
name = models.CharField(max_length=30)
class Person(models.Model):
last_name = models.CharField(max_length=30)
first_name = models.CharField(max_length=30)
entity = models.ForeignKey(Entity)我想将层次结构功能添加到实体模型(通过扩展,添加到Person)。
问:考虑到我更喜欢系统稳定性和易维护性,而不是尖叫-快速查询速度(尽管跨大约2000个叶和节点实体的不可接受的查询速度会很差),您推荐哪种实现?
1)将层次结构树实现为SQL数据库中的嵌套集合,以便通过正常的字段操作进行访问;或者
2)在Django外部实现层次结构树作为常规Python树(例如Node类),通过Django模型方法访问层次结构信息?
谢谢,
麦克
发布于 2011-01-21 06:00:48
我不认为你的替代方案真的是相互排斥的--你最终做的任何事情都会有一些数据库和一些非数据库元素。
我是修改的前序树遍历算法及其出色的Django实现django-mptt的铁杆粉丝。
但是,如果您对嵌套集很感兴趣,那么可以看看django-treebeard,它提供了邻接表和物化路径。
https://stackoverflow.com/questions/4752313
复制相似问题