This topic created in 4330 days ago, the information mentioned may be changed or developed.
急需这样一种程序,求各位技术宅和IT高手帮下,感激不尽:
我知道任意一只羊的父本和母本,父本+母本=子一代
我希望通过一次性的录入完所有羊的数据后,检索,此时直接能够看到该羊三代以内的家谱,包括父母、所有的祖父母、曾祖父母,以系谱图的方式呈现;同时,希望能够列出它所有3代以内的后代。
提供个思路也行,谢谢各位了!
14 replies • 2014-07-12 00:31:44 +08:00
 |
|
2
ChanneW Jul 11, 2014
id | id_father | id_mother
|
 |
|
4
min Jul 11, 2014
你去找个做家谱的软件呗
老外有很多这种软件,找到,装上,把羊的信息输进去,搞定
而且还有可以放羊的照片呢
|
 |
|
5
zhpooer Jul 11, 2014
建表 id | id_father | id_mother, 然后可以直接用 pl/sql 写若干个存储过程, 最后调用一个存储过程 find(id) 打印出需要的内容
|
 |
|
6
187j3x1 Jul 11, 2014
有多少只羊啊 少量用json加前端 好像这样行吧
|
 |
|
12
jianghu52 Jul 12, 2014 1
我比较笨。所以只会笨方法。 首先,数据库就是想channew 那样,3个id。 然后就是笨笨的循环套循环遍历数据库 第一层循环取父id,当父id不为空时,放一个数组a,然后再第二层循环,以这个父id为子id,求他的父ID(其实是爷爷ID)再放进一个数组b,然后第三层,得到曾爷爷的id,放数组c。(记得过滤重复的)
这样就得到了a b c 三层。 同样的方式 得到 母系的三层。
不会画图,但是原理是一样的。 把曾爷爷 曾奶奶的数组拿出来。谁先都行,假设是曾爷爷的数组开始循环,那么第一项是曾爷爷,第二项就是曾奶奶数组的第一项,查数据库,有这个id,且这个id在爷爷(或者奶奶)辈数组里面,那么显示这一项,如果不在,那么这一组都不成立。继续用曾奶奶的数组的第二项匹配,。。。。曾爷爷的第一项匹配完之后,再来就是曾爷爷的第二项同曾奶奶的第一项开始匹配。。。。。
以上就是大概思路。如果所有的羊的辈分只包含上下一层的话,是没有问题的。但是如果包含两层,也就是乱伦,比如一只羊跟她的曾奶奶搞上了,然后再生出一个养的时候,这个图我就不知道会是什么样了。
|