我正在使用 Django(我是新手)开发 Family Tree 网络应用程序,并且正在决定如何设计 FamilyTree 类,以便仅授权用户查看/编辑某些树。
就目前而言,我有两个抽象元类:实体和关系。
实体可以是一个人,甚至是一个组或事件。关系可以是父母、兄弟姐妹、合作伙伴等。
一个关系有“从”和“到”外键,每一个都映射到一个实体。因为我比这个建议更喜欢抽象:Family Tree Data Structure,所以我决定只将个人信息存储在 Entity 的 Person 子类中。通过“相关名称”访问关系。如果需要代码,请告诉我。我需要获得许可才能发布它。
似乎有两种设计 FamilyTree 类的通用方法:
从 FamilyTree 实例到所有实体或所有关系或两者的多对一关系。
与根实体或关系的 OneToOne 关系,在会话期间从中解压缩树的其余部分。
我没有想到第二种方法的任何缺点,这似乎会加快速度。
两者的优点/缺点以及您的个人选择将不胜感激。
还:
- Django 特定的实现思路。
- 也许仅基于 FamilyTrees 分配权限不是一个好主意?
提前致谢!