我在数据库中有与父母相关的人,我需要创建递归函数,它用家谱树返回数组。数据库示例:
NUMBER;NAME;FATHER;MOTHER
001;Name1;002;005
002;Name2;007;018
003;Name3;018;025
005;Name5;006;019
023;Name23;019;045
018;Name18;062;097
007;Name7;;-
...
我准备了两个函数--第一个函数用于人的详细信息,第二个函数用于搜索祖先。
我需要这个结果:
$out[0][0] // first person
$out[1][0] // mother of first pe
我想可视化家谱并将其保存为图像(byte[])。
家谱基于一个简单的模型:
public class Person {
private List<Person> children = new ArrayList<Person>();
private Person partner;
private Person mother;
private Person father;
private final String fullName;
}
到目前为止,我尝试使用了graphstream和jung。使用这两个框架,我都能够生成图像,除了节点的位置不像它
假设我们展示的是几棵家谱。我们目前在族谱首页,我们需要我们的列表如下所示:
家谱
,,,Joneses,,Does
当用户单击Smith时,我们希望列表如下所示:
史密斯一家
史密斯DaveSteveDolly
The Joneses Does
当用户单击Steve时,我们希望列表看起来也是这样:
戴夫·史密斯
史密斯DaveSteveDolly
The Joneses Does
因此,我们需要显示当前页面的所有子页面和兄弟节点的列表,以及层次结构中每个步骤的所有同级。
有什么想法吗?
在我的数据库中,我有一个族谱表,其中包含家庭成员的名称、ids和性别,还有另一个表,它有一个父列和一个包含ids的子列。我试图找到父母和孩子的关系,我有一些困难,以获得正确的查询。例如,我想找到'John‘的父亲,所以我的查询是:
`select name from tree inner join relationship on id=parent where gender='m' and name="John"...`
这是不对的,我不知道从这里往哪里走。基本上,我想选择John的父亲和母亲的名字,并最终将查询扩展到选择John的父母。我如何制定我的查