把族谱(家谱)放到数据库里,用什么样的表结构合适?

栏目:资讯发布:2023-10-02浏览:2收藏

把族谱(家谱)放到数据库里,用什么样的表结构合适?,第1张

我的解法如下:

在族谱中人与人的关系是多对多的关系,所以设计数据结构的时候需要2张表,一张是家族成员表,一张是成员关系表。

ER图,如下:

这样,即可以通过长辈递归出所有的晚辈,也可以通过晚辈递归出所有的长辈。

XMind软件设计工具中有一类图形:树状图,可以展示具有父子关系或有层次级别的图形。树状图根据方向来分,可以分为树状图(向右)和树状图(向左),下面利用树状图(向右)制作家谱图。

第一步,双击打

请下载这个版本使用,装这个程序才是带全功能的。

外加汉化下载地址

xmind 8 win 版 

http://wmmakedingcom/iclk/zoneid=14073

xmind 8mac 版 

http://wmmakedingcom/iclk/zoneid=14074

开XMind设计软件,新建空白图,找到树状图(向右),如下图所示:

第二步,选中“树状图(向右)”点击,弹出选择风格窗口,这里选择“绿茶”风格,如下图所示:

第三步,单击“新建”,创建一个带有绿色填充颜色的中心主题的画布,如下图所示:

第四步,在中心主题后插入三个“主题”,上面的内容显示的是分支主题,如下图所示:

第五步,修改中心主题和主题上的描述,并在主题后插入子主题,相应的修改其内容,如下图所示:

第六步,修改画布的墙纸,并修改画布的背景色,修改完毕后预览,如下图所示:

对于一般的家谱树(一般的多叉树)来说,我们可以很清楚的看出层次关系,树的层数表示代数(一共多少代人),树的最后一层表示最后一代人,由于多叉链表法表示的不方便,因此被迫无奈采用孩子兄弟表示法(二叉链表法)

假设我的家谱是这样的:

           

转换成孩子兄弟表示法后是这样的:

           

      我们要做的是:这时我们要找有多少代人,以及最后以一代人出来。

     如果根据第一个图来说找代数就是树的高度,最后一代人就是树的最后一层,二叉链表法中却不如第一个图来的直观,但是只要把握二叉链表法的本质还是很清晰的,根据孩子兄弟表示法的特性,(看二叉链表法的图)结点3的左子树保存的是其孩子,结点3的右子树保存的是其堂兄弟(对照第一个图来看)。假设我们每一个节点都有一个变量用来存储它是第几代的,那么从结点1开始,我们要找结点10是第几代的话,应该这么做:结点1是第一代,然后经过结点5是第二袋,然后看到结点10是第三代。因为第i个结点的左子树是他的孩子,既然是孩子,代数必须+1,而右子树是和第i结点同辈份的(堂兄弟),因此不能加1。本质来说就是往左走代数+1,向右走代数不变。这就是这题目的思路,通过这个方法你就可以知道有多少代人了,且每个节点都有保存了代数信息(用变量存起来了),再次遍历树把最后一代的结点输出即可。清晰了吗?清晰了我就开始写程序。

一、序

序就类似于现在书的序,可以由族中得望高的人写,也可以由外人写。主要是通过另一个或另几个人的眼光来看待这本族谱。通常情况下,新序在前面,旧的序也要包含在内并排在新序后面。

二、简介

即使是对于自己的家族,能全面了解的人也不多,所以

需要首先简介一下自己家族,可提及的内容有:刻谱凡例、本族谱本次创修(修订)参与人员、时间、为什么要修订;此次编码的依据是什么;家族的整体情况、历史、迁移史、当前分布、人数;本族宗派、字辈,即记录每一代人起名规则;祖坟所在地、祖坟中各代分布图;对祖先事考查、考证。

总之,这里不具体到某一个人,只是对整个家族进行整体描述。

三、人物志

其实一本家谱本身就是人物记录,但通常情况下,家谱中会记录某一个或多个优秀的典型人物或团体。而记录这些优秀人物时,常常格式多样,有该人的传记、他写的文章书稿、获得过的功名、官名、、画像、碑记等。这里需要注意的是千万不能把同姓历史名人强编入本族谱,即使是小小提示也不可。因为后人续谱时,常常会因为这一次信以为真,而以讹传讹。

四、世系表

世系是家谱中最为重要的一项,最简单的家谱,有时只有一个世系表。

世系表是记录家族中每个人的关系,用计算机中的术语,这种一对多的结构是“树”状结构,但实际中的往往会比较复杂。当一个家族很大、人数很多时。会出现嗣出嗣入(通过过继、领养、送人)、迁入迁出的现象。

五、世略表

通常情况下,仅有世系表的家谱其实是没有实际意义的,面对一些不是名人的名字,除了这几个字,你还能知道什么呢一个好的办法就是增加世略表,世略表是记录世系表中每一个族人简历的表。这一部分可以和世系表合二为一,也可以单列。我认为单列更好,因为合二为一,常常导致世系表过肥过大,查找一个成员的时候非常麻烦。

很多家谱中,世略只写到父名、娶妻、生子数及名字数,这样写虽然整体看上去挺规范,实际上也没多大意义,因为世系表本身就可以表示这种信息。我认为世略不一定能做到每个人都有完整的简历,但至少应该有:本人生卒年月、主要职务、职称、主要生活工作地、本人工作简历、主要成绩、妻子姓名、妻子嫁出地、妻子父亲的名、妻子简历、子女名、女儿出嫁地、所嫁人姓名。这样不仅妻方家谱可以通过家谱查到本家族,本家族也可以通过自己家族查到女儿家族。

六、后记

后记写一些感想即可。

(来源:百度经验等)

在亿图图示中,点击组织结构图,里面有绘制家谱/树形图的功能。

直接点进去就可以绘制的,操作十分的简单,还有现成的模板可以使用。制作家谱图,可以用来有效地展示你的家族历史。首先从最高辈分的人开始画,排布出他的子女,然后每一代创建一个家庭树分支。通过简单加工与整理就可以把这个图变成一个值得展览的艺术品,或者保存给子孙后代,让家族文化世代传承。

把族谱(家谱)放到数据库里,用什么样的表结构合适?

我的解法如下:在族谱中人与人的关系是多对多的关系,所以设计数据结构的时候需要2张表,一张是家族成员表,一张是成员关系表。ER图,如下...
点击下载
热门文章
    确认删除?
    回到顶部