族谱信息管理系统
第3章 数据库设计
3.1功能模块分析
该族谱信息管理系统主要分为六个模块,分别为管理员模块、族谱内容模块、用户模块、划分区域模块、家庭信息模块和首页。总体功能模块图如图3-1所示。
图3-1 总体功能模块图
首页模块:首页显示注册和登录进行注册后,如若注册成功,即可进行登录。
管理员模块:管理员模块不仅需要将管理员自己的个人信息存储到数据库中,可以在数据库中进行增删查改,还需要可以管理用户信息,族谱内容,区域划分等模块的内容。
族谱内容模块:需要做到将族谱的内容如:世系表、辈分规定等存储到数据库中,方便不同区域的人对数据库中的内容进行增删查改。注意不同的地区,族谱的内容可能存在不同。
用户模块:用户可以进行注册和登录,并且可以将自己的个人信息进行存储,用户没有改变族谱内容的权限。不同的风俗文化对于用户个人信息的统计存在很大程度上的影响。
区域划分:区域划分模块,显示出了不同区域族谱的不同,跟当地的风俗文化有关。
家庭信息模块:大多数用户都会有自己的家庭信息录入,新出生的小孩,或者配偶都可作为家庭信息模块的内容进行录入。
该系统的流程图如下图图3-2所示:
图3-2 系统流程图
互联网的快速发展,不仅拉动了现代经济的飞速发展,也提高了人们的生活水平。族谱不仅记载了一个家族的起源与发展,也反映了历史的变迁和文化生活的发展和进步。一本族谱记载了祖祖辈辈的发展史,但是更需要的是将这种传统文化发扬下去,但是随着经济和交通的不断进步,同一个家族的人居住地也会发生很大几率的改变,新出生的族人在族谱中进行统计会变得越来越困难,甚至有的人会和发源地的人失去联系。但是如果将族谱的记录和现代互联网联系在一起,可以使族谱的统计和更新换代更加方便。但是只有把这种人员的增删查改存储到数据库之中,有了良好的数据库支持,才能建立一个更加稳定,更加完善的系统。有了强大的数据库的支持,使我们的系统使用和查询都更加方便,极大的简化了管理员进行族谱修订的难度,也方便了用户进行个人信息的查询,使我们这个系统更加有意义。
3.2数据库分析
本族谱信息管理系统是对一个家族的信息进行统计的系统,使用PHP语言进行开发。MySQL数据库的使用更加方便,也更加灵活。对于初学者而言,使用一个集成环境的开发工具可以使开发变得更加简单、更加方便。PHP study就是一个现成的,集Apache和MySQL与一体的开发工具,图形化的开发工具使得我们对整个开发环境的操作和管理变得更加方便、快捷。
3.2.1数据库概念设计
结合对族谱信息管理系统的需求分析和功能设计,以下就是对于该系统的实体-关系图(E-R图)。
管理员信息实体包括管理员id、管理员姓名、电话、家庭住址、出生日期,性别等几项内容,是用于存储管理员信息的实体。在这个族谱信息管理系统中,只有将管理员的个人信息记载清楚,才能让用户更加安心的使用此系统,相信此系统的可信度。管理员信息实体的E-R图如图3-3所示。
3-3 管理员信息实体关系图
(2)用户信息实体
用户信息实体的设计是为了方便记录每一个用户的个人信
息,族谱信息管理系统的设计初衷就是为了方便记录每一个用户的个人信息,使每一个用户都都能访问到族人的信息,使族谱的信息更加完善,查找也更加方便。用户信息实体的E-R图如图3-4所示。
(3)区域划分信息实体
每个地区的族谱随着历史的变迁和时代的更替都会出现各
种各样的差异,区域划分信息管理实体是族谱信息管理系统中的一个模块,记录了每个区域的地区文化,为统计不同地区的族谱信息提供了便捷。区域划分信息管理系统的E-R图如图3-5。
(4)族谱内容信息实体
族谱内容信息实体,详细介绍了族谱信息系统中对于族谱信
息的记录,极大的方便了每一个用户及时了解不同地区之间族谱的差异,也领略了各地不同的文化差异,方便用户了解自己家族的历史更替。族谱内容信息实体的E-R图如图3-6所示。
(5)家庭信息信息实体
家庭信息信息实体在族谱信息管理系统中,记录了每一个用
户的家庭信息,每一个家庭中新增加的成员都可以记录到族谱中,通过数据库的增删查改,使新成员能够写入族谱的程序更加简洁,极大的保证了族谱的完整性。相比较传统的纸质版族谱的优势就是更加及时的保存了新加入成员的个人信息,使族谱的修订更加便捷。家庭信息信息实体的E-R图如图3-7所示。
(6)实体间关系图
每个管理员,都拥有自己的id,管理员可以来自不同的地区,所以需要注明每个管理员的家庭住址;不同的地区的族谱构造不同,派行也不同,所以应该拥有区域划分这个实体,该实体应该拥有区域名和区域id等属性。管理员可以管理不同区域的族人的信息,且一个管理员可以管理多个区域。每一个地区由于地区风俗和文化环境的差异,即使同一个姓氏也可能拥有不同的族谱内容,但是划分的每个地区的族谱内容应该是相同的,一个地区只能拥有一分族谱内容,所以区域划分和族谱内容是一对一的关系。每一个用户只可能出现在一个地区的一个族谱内容中,所以是一对一的关系。管理员和用户之间是多对多的关系,一个管理员可以管理多个用户信息,一个用户信息也可以被多个管理员管理。所以在管理员信息表和用户信息表之间建立一个注册表,用户通过注册信息决定是在被哪个管理员管理,管理员信息表和注册表,用户信息表和注册表之间都是一对一的关系。一般的用户都会有多个家庭成员,所以用户和家庭信息之间是多对多的关系。所以在管理员信息表和家庭成员信息表之间建立一个用户联系表,一个用户对应一个关系表,一个关系表连接了用户信息表和家庭成员表。一个家庭信息只能计入一本族谱中,所以家庭信息和族谱是一对一的关系。一个用户只能对应一个地区,所以用户模块和地域划分模块是 一对一的关系。首页信息表和管理员之间存在一对多的关系。该系统的总体关系E-R图如图3-8所示:
3-8 总体关系E-R图
3.2.2创建数据库和数据表
本系统中采用MySQL数据库进行存储,数据库的名称为pedigree of a clan。根据对此族谱信息管理系统的分析,为满足设计要求,在此数据库中一共建立了6张表,表的信息如下表3-1:
表3-1 数据库各项表名
编号 |
表名称 |
描述 |
备注 |
1 |
manage |
管理员信息表 |
|
2 |
user |
用户信息表 |
|
3 |
place |
区域划分信息表 |
|
4 |
context |
族谱内容信息表 |
|
5 |
family |
家庭信息表 |
|
6 |
homepage |
首页信息表 |
|
|
|
|
|
数据库的命名、关系名和字段都使用英文进行标注,用于直接存储数据,数据库的关系表一般取名为“xxx表”,比如:家庭信息表取名为family。暂时没有使用到名称较长的表。
以下是pedigree of a clan数据库中的所有数据表,此数据库中一共有6张表。
表3-2 管理员信息表
名称 |
类型 |
空 |
备注 |
Id |
Int |
否 |
管理员id |
Name |
Char(50) |
否 |
管理员姓名 |
Phone |
Int |
否 |
电话号码 |
address |
Char(50) |
否 |
家庭地址 |
Birthday |
Int |
否 |
生日 |
gender |
boolean |
否 |
性别 |
信息,只有将家族中每个成员的个人信息都存储到数据库中,并且可以进行查询,才能够在一定程度上完善这个族谱信息管理系统,方便进行统计。该表主要包括用户id、用户姓名、生平简介、社会贡献、生日、职业、所属分支、直系亲属、是否分配等。了解每一个家族成员的个人信息及生活状态,从而达到每一个人都会在家族的更替中占有一席之地,极大地促进了每一个家族成员更加努力、为社会做贡献的积极性。用户信息表如表3-3所示。
表3-3 用户信息表
名称 |
类型 |
空 |
备注 |
u_id |
Int |
否 |
用户id |
u_name |
Char(50) |
否 |
用户姓名 |
u_lifetime |
Char(50) |
否 |
生平简介 |
u_contribution |
Char(50) |
否 |
社会贡献 |
u_birthday |
Int |
否 |
生日 |
u_profession |
Char(50) |
允许 |
职业 |
u_branch |
Char(50) |
否 |
所属分支 |
direct_relative |
Char(50) |
否 |
直系亲属 |
u_marriage |
boolean |
允许 |
婚否 |
标注出来并且存入数据库中,便于查看当地的风俗,也便于区分不同地区族谱的差异,有利于更大范围的统计族谱的人员信息,把各地的族人都联系起来,追根溯源。区域划分信息表如表3-4所示。
表3-4 区域划分信息表
名称 |
类型 |
空 |
备注 |
p_id |
int |
否 |
区域id |
p_name |
char(50) |
否 |
区域姓名 |
p_culture |
char(50) |
否 |
地区文化 |
(4)context(族谱内容信息表):族谱内容信息表,详尽的记录了每一个地区族人的详细信息,并且记录了族人的辈分规定,一般按照族谱上辈分规定取名,可使同一个地区的族人按照辈分规定便可得知改族人是第几代人,当然每个姓氏都会有自己的祠堂,在族谱中也详尽记录了祠堂所处的地理位置。当然该表中还包含了历史、世系表、包括为社会发展做出突出贡献的名人事迹。族谱内容信息表如表3-5所示。
表3-5 族谱内容信息表
名称 |
类型 |
空 |
备注 |
ancestral_temple |
Char(50 |
否 |
辈分规定 |
history |
Char(50) |
否 |
历史 |
c_position |
Char(50) |
否 |
祠堂 |
lineage |
Char(50) |
否 |
世系表 |
c_celebrity |
Char(50) |
否 |
名人 |
(5)family(家庭信息表):家庭信息表则记录每个用户的家庭信息,把族人的家人记录到族谱中,把信息存入数据库中,即也意味着将其家人记入了族谱中,同样也意味着自己的家人得到了族人的认可。该表包括了家庭成员的id、家庭成员的姓名、职业、生日、性别、生平简介和与用户之间的关系。家庭信息表如表3-6所示:
3-6 家庭信息表
名称 |
类型 |
空 |
备注 |
f_id |
Int |
否 |
id |
f_name |
Char(50) |
否 |
姓名 |
f_profession |
Char(50) |
否 |
职业 |
f_generation |
int |
否 |
第几代 |
f_birthday |
Int |
否 |
生日 |
f_gender |
boolean |
否 |
性别 |
f_lifetime |
Char(50) |
否 |
生平简介 |
3-7 首页信息表
名称 |
类型 |
空 |
备注 |
h_name |
char(20) |
否 |
首页名 |
庭关系,将用户信息表和家庭信息表之间建立联系。家庭关系表如表3-8所示:
表3-8 家庭关系表
名称 |
类型 |
空 |
备注 |
r_id |
int |
否 |
id名 |
R_ralationship |
char(50) |
否 |
用户之间的关系 |
3-9 注册表
名称 |
类型 |
空 |
备注 |
re_id |
int |
否 |
id名 |
information |
char(50) |
否 |
注册用户信息 |
系统分析
需求分析
纸张作为信息传播最原始的工具之一,也承载了上下五千年历史的变迁。起初族谱的承载方式就是这种最原始的方式,但是在传播的过程中,也存在许多问题,比如族谱的丢失等,这些都给文化的传播和某一姓氏的追根溯源造成了不可挽救的损失,同样,纸质族谱在更新的过程中,也存在各种各样的问题:地域、文化上的差距都会给族谱的更新带来一定程度上的难度,甚至有的人在族谱更新的过程中会出现遗漏,能统计到的只是一部分人的信息,为了更加方便的统计族人信息,也为了统计到更多人的信息,减少被遗漏的人员,我们需要寻找一种更有效、更方便的途径进行族谱的统计和更新。虽然纸质族谱带给人们的是不可取代的情怀,但是随着现代科技和文明文化的进步,将纸质族谱和互联网技术相结合,利用数据库的增删查改功能,使族谱的更新更加方便。将族谱信息管理系统发布到各地,融汇更多人的智慧,也更利于文化的传播,对于追根溯源也带来了不可取代的效果。运用所学的知识,将族谱的信息通过计算机的方式进行存储,不仅为族谱的更新换代提供了便捷,也节省了大量的人力、物力、财力和精力,而且更利于传统文化的传播,增强国民的凝聚力。通过对一些族谱内容进行的整理和调研的部分人员的需求,该族谱信息管理系统主要实现以下内容:
可行性分析
族谱信息管理系统不仅能够方便同一个姓氏的人对个人信息进行统计,将数据存入数据库中,也简化了进行增删查改的步骤。此信息管理系统的开发方便、简洁,适用于同一个姓氏的人进行个人信息的统计,开发、维护的成本较低。
经济性
本课题所开发的族谱信息管理系统是针对同一个家族的人对信息进行增删查改的系统,只需要使用一台电脑使用本系统,节省了大量的人力、物力、财力,互联网时代的到来,安装电脑也不是什么难事,所以不会增加额外的负担。从人力的角度来说,将族谱管理系统用于与计算机之中,简化了进行族谱更新的步骤。在信息不发达的时代,进行族谱的更新需要同一个地域的人员来回跑,进行信息的统计和核实,此系统开发后,进行信息统计时,将系统发布到网上,可以用户将自己的个人信息统计到互联网上,通过管理员审核之后,便可发布,这样便可以将管理提上一个新的层次,提高了工作的效率,减少了族谱进行更新换代的开销。
技术性
随着现代科技的发展,人们的生产生活都随着现代信息技术的发展发生了根本上的改变,电脑已经普及到社会生活的方方面面,将信息管理系统运用到电脑中是一个大趋势。使用PHP study开发一个族谱信息管理系统,将信息存储到数据库中,进行增删查改,极大的方便了族谱中的信息进行更新。用一个新的方式进行族谱的统计,也减少了纸张的浪费。管理员可以随时根据实际情况对数据进行更改,简化了操作的步骤,也提高了数据的准确性。
系统功能分析
结合需求分析、系统目标、查找到的关于族谱信息的书籍以及网络上存在的系统设计的模板,还有对一些群众进行的调查统计,得到下面几点基本要求,作为本系统的开发要求:
为了使此系统看起来更加清楚、明白,以下是系统的总体功能模块图和工