第一个问题,设计数据模式:我将层次结构保留为父行的外键.这很简单.

第二个问题,检索后代/后代:正如你解释的那样,问题来自于选择:选择一些人和所有后代的后代.要解决此问题,您应该创建一个新的树表.此表包含对:与具有所有祖先(及其自身)的人的组合:

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 **

你可以与远方玩,只有祖父母,孙子女等…

最后一个问题,保持树:树必须始终是数据.您应该自动执行此操作:触发人员或CRUD操作的存储过程,

EDITED

因为这是一个家谱树,每个人必须有两个参考,父母和母亲:

people( id, name, id_parent, id_mother)

然后,需要2棵树:

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 --

问候.

mysql 家谱关系_mysql – 家谱树算法相关推荐

  1. mysql 家谱关系_mysql家谱表查询某人所有后代

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. CREATE TABLE `people` ( `id` INT(11) NOT NULL ...

  2. mysql 函数依赖关系_MySQL关系规范化

    MySQL关系规范化 做者:就叫易易好了 时间:2020/10/21 指导老师:桃群老师 1.关系规范化 一.函数依赖 什么是函数依赖?好比学生管理系统数据库,有学生姓名(Sname).学生系名(Sd ...

  3. navicat 8 mysql生成关系_MySQL数据库通过navicat建立多对多关系

    ** 构建两张表的多对多关系:清洗数据表(clean_data表)与用户表(user表)建立多对多的关系.如下图图0所示 图0 多对多之间关系 1 创建表 .打开navicat,创建三张表,clean ...

  4. 以下关于mysql复制关系_MySQL 复制

    MySQL复制介绍 •MySQL复制允许将主实例(master)上的数据同步到一个或多个从实例(slave)上,默认情况下复制是异步进行的,从库也不需要一直连接到主库来同步数据 • MySQL复制的数 ...

  5. mysql映射关系_mysql数据库对象关系映射_MySQL

    bitsCN.com mysql数据库对象关系映射 1.对"对象关系映射"的理解 a.对象:可以理解为java中的类 b.关系:可以理解为数据库的表 c.映射:这是因为java中的 ...

  6. 用二叉树表示家谱关系并实现各种查找功能

    /** *    实验题目: *        用二叉树表示家谱关系并实现各种查找功能 *    实验目的: *        掌握二叉树遍历算法的应用,熟练使用先序.中序.后序3种递归 *    遍 ...

  7. 二叉树家谱关系实验报告

    用二叉树表示家谱关系并实现各种查找功能 我有借鉴的博客 编写一个程序exp7-9.cpp,采用一棵二叉树表示一个家谱关系(由若干家谱记录构成,每个家谱记录由父亲.母亲和儿子的姓名构成,其中姓名是关键字 ...

  8. mysql 表结构关系_mysql 表关系 与 修改表结构

    mysql 表关系 与 修改表结构 两张表关系 多对一 以员工和部门举例 多个员工对应一个部门 foreign key 永远是在多的那张表中设置外键 """ 从左边的表思 ...

  9. MySQL什么是关系_MySQL教程-关系模型

    MySQL教程-关系模型 Date 2021-1-22 Author Haihan Gao 什么是关系模型关系模型本质上就是多个存储数据的二维表 表的每一行称为记录 记录是一个逻辑意义上的数据 表的每 ...

最新文章

  1. 四全集学python选哪种电脑_“Python教程哪个版本最适合学习?“python教程全集
  2. 科大星云诗社动态20210329
  3. 《HTTPS权威指南》- SSL、TLS和密码学学习笔记
  4. 值得一用的Windows软件
  5. 人生几张纸,看透一辈子
  6. 追踪监听(TraceListener)
  7. java钟使用dwr_DWR中各种java方法的调用
  8. j2ee核心模式_Java设计模式是什么?
  9. vsan双主机配置_5千右预算,兼顾Pr剪辑、Ps修图、CAD制图的高性价比DIY主机配置...
  10. mybatis --XML 映射配置文件
  11. python三大器物---装饰器
  12. Mac安装双系统的那些坑
  13. 六、Python文件操作
  14. curl打开网页403或者302的解决方法(详细总结)
  15. php正则表达式表情,php正则表达式储存展示表情字符的方法
  16. linux awl***程序说明
  17. 用java编译实现计算个人所得税(工资)
  18. 人工智能到底是什么?AI可以涵盖哪些领域?
  19. 程序员必看的那些电影
  20. 用python写情书_Fedora写给Python的情书

热门文章

  1. 帆软报表,异常问题汇总
  2. 明日之后无限信用点的服务器,明日之后免费刷信用点特别版
  3. keep sb updated_keep me updated是什么意思
  4. [转] 汉语骂人最高境界!(爆笑)
  5. 用AS实现微信界面设计
  6. (附源码)ssm招聘网站 毕业设计 250858
  7. CV赛事|“华为云杯”2020深圳开放数据应用创新大赛•生活垃圾图片分类
  8. Java实现:房贷计算器 (关键词:公积金、首付、等额本息、等额本金)
  9. Centos7开地狱已满服之插件安装
  10. TI Zigbee Light Link 参考设计