jianghu52
2014-07-12 00:12:40 +08:00
我比较笨。所以只会笨方法。
首先,数据库就是想channew 那样,3个id。
然后就是笨笨的循环套循环遍历数据库
第一层循环取父id,当父id不为空时,放一个数组a,然后再第二层循环,以这个父id为子id,求他的父ID(其实是爷爷ID)再放进一个数组b,然后第三层,得到曾爷爷的id,放数组c。(记得过滤重复的)
这样就得到了a b c 三层。
同样的方式 得到 母系的三层。
不会画图,但是原理是一样的。
把曾爷爷 曾奶奶的数组拿出来。谁先都行,假设是曾爷爷的数组开始循环,那么第一项是曾爷爷,第二项就是曾奶奶数组的第一项,查数据库,有这个id,且这个id在爷爷(或者奶奶)辈数组里面,那么显示这一项,如果不在,那么这一组都不成立。继续用曾奶奶的数组的第二项匹配,。。。。曾爷爷的第一项匹配完之后,再来就是曾爷爷的第二项同曾奶奶的第一项开始匹配。。。。。
以上就是大概思路。如果所有的羊的辈分只包含上下一层的话,是没有问题的。但是如果包含两层,也就是乱伦,比如一只羊跟她的曾奶奶搞上了,然后再生出一个养的时候,这个图我就不知道会是什么样了。