1
zhpooer 2014-07-11 23:25:24 +08:00
oracle?ok?
|
2
ChanneW 2014-07-11 23:27:34 +08:00
id | id_father | id_mother
|
4
min 2014-07-11 23:44:51 +08:00
你去找个做家谱的软件呗
老外有很多这种软件,找到,装上,把羊的信息输进去,搞定 而且还有可以放羊的照片呢 |
5
zhpooer 2014-07-11 23:46:44 +08:00
建表 id | id_father | id_mother, 然后可以直接用 pl/sql 写若干个存储过程, 最后调用一个存储过程 find(id) 打印出需要的内容
|
6
187j3x1 2014-07-11 23:51:02 +08:00
有多少只羊啊 少量用json加前端 好像这样行吧
|
12
jianghu52 2014-07-12 00:12:40 +08:00 1
我比较笨。所以只会笨方法。
首先,数据库就是想channew 那样,3个id。 然后就是笨笨的循环套循环遍历数据库 第一层循环取父id,当父id不为空时,放一个数组a,然后再第二层循环,以这个父id为子id,求他的父ID(其实是爷爷ID)再放进一个数组b,然后第三层,得到曾爷爷的id,放数组c。(记得过滤重复的) 这样就得到了a b c 三层。 同样的方式 得到 母系的三层。 不会画图,但是原理是一样的。 把曾爷爷 曾奶奶的数组拿出来。谁先都行,假设是曾爷爷的数组开始循环,那么第一项是曾爷爷,第二项就是曾奶奶数组的第一项,查数据库,有这个id,且这个id在爷爷(或者奶奶)辈数组里面,那么显示这一项,如果不在,那么这一组都不成立。继续用曾奶奶的数组的第二项匹配,。。。。曾爷爷的第一项匹配完之后,再来就是曾爷爷的第二项同曾奶奶的第一项开始匹配。。。。。 以上就是大概思路。如果所有的羊的辈分只包含上下一层的话,是没有问题的。但是如果包含两层,也就是乱伦,比如一只羊跟她的曾奶奶搞上了,然后再生出一个养的时候,这个图我就不知道会是什么样了。 |
14
akfish 2014-07-12 00:31:44 +08:00
|