我正在使用Django(我是新手)在Family Tree Web应用程序上工作,并决定如何设计FamilyTree类,以便用户可以被授权仅查看/编辑某些树。
目前,我有两个抽象的元类:实体和关系。
实体可以是人,甚至是群组或事件。关系可以是父母,兄弟姐妹,合作伙伴等。
关系来自"来自"和"到" ForeignKeys,每个都映射到一个实体。因为我比这个建议更喜欢抽象:Family Tree Data Structure,所以我决定只将个人信息存储在Entity的Person子类中。通过"相关名称"访问关系。如果需要代码,请告诉我。我需要获得发布的许可。
似乎有两种设计FamilyTree类的一般方法:
从FamilyTree实例到所有实体或所有实体或两者的ManyToOne关系。
与根实体或关系的OneToOne关系,在会话期间将其余的树解包。
我还没有想到第二种方法的任何缺点,这似乎会加快速度。
非常感谢优点/缺点,以及您的个人选择。
此外:
提前致谢!