小编典典

第一个问题是设计数据模式 :我保留带有父行外键的层次结构。很简单。

第二个问题,检索上升/下降

:正如您所解释的,select带来的问题是:选择某些人和所有上升后代。为了解决这个问题,您应该创建一个新的树表。该表包含以下几对:一个人及其所有祖先(及其本身)的组合:

people( id, name, id_parent)

people_tree( id, id_ancestor, distance )

注意,使用这种结构很容易查询层次结构。样本:某人的所有后代:

select people.*, distance

from

people p

inner join

people_tree t

on ( p.id = t.id)

where

id_ancesor = **sombody.id **

您可以与远方玩耍,只让祖父母,孙子女等…

最后一个问题,保持树 :树必须 一直保持 数据。您应该自动执行此操作:peopleCRUD操作的触发器或存储过程,

已编辑

因为这是家谱树,所以每个人都必须同时具有父母和母亲两个参考:

people( id, name, id_parent, id_mother)

然后,需要两棵树:

parent_ancestors_tree( id, id_ancestor, distance )

mother_ancestors_tree( id, id_ancestor, distance )

大卫要求提供样本数据:

people: id name id_parent id_mother

1 Adam NULL NULL

2 Eva NULL NULL

3 Cain 1 2

.. ...

8 Enoc 3 5

parent_ancestors_tree id id_ancestor distance

(Adam) 1 1 0

(Eva) 2 2 0

(Cain) 3 3 0

3 1 1

(Enoc) 8 8 0

8 3 1

8 1 2

mother_ancestors_tree id id_ancestor distance

(Adam) 1 1 0

(Eva) 2 2 0

(Cain) 3 3 0

3 2 1

(Enoc) 8 8 0

-- here ancestors of Enoc's mother --

问候。

2020-07-28

mysql 家谱树查询_族谱树算法相关推荐

  1. mysql 家谱树查询_无限级分类之查找子孙树和家谱树

    $area=array( array('id'=>'1','name'=>'河南','parent'=>0), array('id'=>'2','name'=>'吉林', ...

  2. mysql 家谱树查询_中国家谱族谱数据库可以登录、查询了

    原标题:中国家谱族谱数据库可以登录.查询了 中青在线武汉6月6日电(党波涛 中国青年报·中青在线记者 雷宇)数据量全球第一,最早可追溯到明朝万历年间.华中师范大学中国农村研究院今天对外发布,由该院建设 ...

  3. mysql 家谱树查询_GitHub - chenwei/FamilyTreeView: 家谱树绘制Demo

    FamilyTreeView 重大改进,增加仿"亲友+"App的家谱,与之前的没有任何关联,可以直接翻到第二部分"仿亲友+家谱"部分进行阅读 家谱树绘制Demo ...

  4. 为什么mysql查询结果有前缀_字符串的公共前缀对Mysql B+树查询影响回溯分析

    年前项目组接微信公众号. 上线之后,跟微信相关的用cid列的查询会话的SQL变慢了几十倍!思考这个问题思考了非常久.从出现以来一直是我心头的一个结.cid这一列是建了索引的,普通的cid列更新都没问题 ...

  5. java mysql 多表查询_解析Mysql多表查询的实现

    查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看. Mysql多表查询: CREATE TABLE IF NOT EXISTS co ...

  6. mysql怎么子查询_在mysql中如何进行子查询?

    在mysql中,子查询是指将一个查询语句嵌套在另一个查询语句中,可以在SELECT.UPDATE和 DELETE语句中配合WHERE子句进行实现,WHERE子句中语法格式为"WHERE (另 ...

  7. mysql 利用时间查询_利用时间的艺术

    mysql 利用时间查询 Oh dear! If I had a dime every time (I just rhymed - twice!) someone, including me, com ...

  8. mysql中文模糊查询_解决MySQL中文模糊查询问题

    解决MySQL中文模糊查询问题: 我们在MySQL中进行中文模糊查询时,经常会返回一些与之不相关的记录,比如查找%a%时,返回的可能有中文字符,却没有a字符存在.对于此问题目前发现一种方法可以很方便解 ...

  9. php和mysql处理树状_分级_无限分类_分层数据的方法_PHP和MySQL处理树状、分级、无限分类、分层数据的方法...

    文章标题中的多个词语表达的其实是一个意思,就是递归分类数据,分级数据非常类似数据结构中的树状结构,即每个节点有自己的孩子节点,孩子结点本身也是父亲节点.这是一个递归.分层形式.可以称之为树形层级数据. ...

最新文章

  1. 编程以外积累: 如何给项目生成类似VS2008的说明文档
  2. HDU 3308 线段树求区间最长连续上升子序列长度
  3. resharper警告 :linq replace with single call to FirstOrDefault
  4. mysql 数据库锁一般处理
  5. mysql sql语句里连接符的使用_SQL中group_concat函数,用符号连接查询分组里字段值...
  6. 程序设计与算法----动态规划之最长公共子序列
  7. 吴裕雄--天生自然 高等数学学习:空间直角坐标系
  8. python画卡通皮卡丘_实现童年Pokémon,教你用Python画一只属于自己的皮卡丘
  9. 纯小白成功安装交叉编译工具arm-none-eabi-gcc
  10. Android权限之sharedUserId和签名
  11. 怎样在安卓中实现在锁屏状态下弹出对话框,并可以震动和铃声,就像闹钟似的?...
  12. tomcat出现5个using_婚姻出现危机的8个迹象,日常5个细节促进夫妻情感
  13. java语言判断101到200之间素数
  14. 互联网创新创业大赛优秀范例_创新创业大赛优秀作品-互联网+大赛作品
  15. 关于树莓派DSI屏幕触摸不准的问题
  16. python查看cpu温度_Python如何读取CPU和GPU的温度?
  17. OS学习笔记-15(清华大学慕课)处理机调度
  18. python3的基本数据类型_python3基本数据类型
  19. 资讯类App主流框架(一)
  20. react指定ref的三种方式

热门文章

  1. 解决ssh: Could not resolve hostname ***: nodename nor servname provided, or not known报错
  2. OSChina 周五乱弹 —— 黑披风的程序员和白围裙的产品经理彼此世代为仇
  3. word表格和后面的文字间距太小
  4. ArcGis配色心得
  5. antd给表格加上序号
  6. 商女不知亡国恨,隔江犹吃炒腰花
  7. 尚硅谷 jQuery 笔记(张晓飞 2018)
  8. 计算机专业转生物信息(bioinformatics)方向必看视频
  9. 微信小程序教程03:WXML语法
  10. MATLAB代码编写中自定义变量的问题