我正在尝试存储一棵家谱 . 这是我正在使用的平台,Zend框架,Mysql,Ajax我搜索了stackoverflow我遇到过这篇文章,这对于处理对象方面的数据非常有帮助 .
我将简要说明我的用例 . 用户可以根据数据库中定义的少数关系创建家庭成员或朋友 . 我也有关系模型 . 用户可以创建家庭成员,如离婚配偶,frineds . Max the Tree可以很深,我们假设最大的孙子的孩子,但它也可以扩大宽度 . 兄弟/姐妹和他们的家人 .
我正在寻找一个有效的数据库设计,以减少查询时间 . 如果我必须使用上面文章中描述的数据结构,我必须保留它们,因为它们必须是模型 .
为表示我计划使用http://code.google.com/apis/chart/interactive/docs/gallery/orgchart.html#Example来自http://code.google.com/apis/chart/interactive/docs/gallery/orgchart.html#Example
我会总结一下我需要的东西
-
数据库设计
-
放置控制器(ajax)和型号
-
用户将创建的人员不会是任何其他用户 . 只是另一些数据
是的,就是这样!当我完成项目时,我会在这个帖子上发布完整的解决方案,当然还有你们的专业知识
提前致谢
EDIT 我会更详细地阐述我的情况
我有一个用户表,一个关系表,以及最后一个家庭/家庭树表
Family表必须具有与以下类似的结构
ID userid relation id Name
1 34 3 // for son ABC
2 34 4 // for Wife XYZ
3 34 3 // for Mom PQR
4 34 3 // for DAd THE
5 34 3 // for Daughter GHI
6 34 3 // for Brother KLM
这种方法的缺点是产生与其他节点的关系,如媳妇,妻子兄弟及其家人 .
理想的做法是为了一个用户,我们可以添加父母,兄弟姐妹,孩子和额外的关系,他们必须从家庭成员关系中得出,即,姐夫必须是姐妹的丈夫或妻子的兄弟 .
这就是我现在能想到的 . 我只需要实施指南 .
希望这有助于你们提供更好的解决方案 .
1 回答
我想从数据库的角度来看,最好像它一样实现它
其他选项是字符串前缀
其他(更有效)算法(如MPTT)假设数据是树,在这种情况下不是(它有圆圈) .
为了表明它会起作用 - 选择马克的祖父母: