个人信息管理系统后台数据库设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1需求分析1.1系统功能结构图
1.1.1系统功能图如下所示
1.1.2流程分析
用户需要使用账号和密码通过登录界面登录个人信息管理系统,新用户可以注册账号进行登录。
登陆后进入系统主窗体,可对个人信息管理、通讯录管理、日程安排管理、个人财务管理进行操作。
退出系统时返回登陆页面。
1.1.3系统功能分析
个人信息管理系统主要由:个人信息管理、通讯录管理、日程安排管理、个人财务管理等模块组成。
进入系统后,用户可以对系统中的信息进行查询、添加、修改、删除等操作。
有以下功能:
1.个人信息:包括个人姓名、性别、出生日期、民族、学历、电话、邮箱、工作
单位、地址、
2.QQ等。
3.通讯录信息:包括通讯人姓名、联系方式、工作地点、所在城市、备注等。
4.个人财务信息:包括总收入,消费项目、消费金额、消费时间、余额等。
1.2数据流图
由以上的需求分析,可以得到各种数据项,数据流向,数据处理过程以及最终的数据
1.2.1顶级数据流图
图 1-2
1.2.2第二级数据流图
图 1-3
1.2.3第三级数据流图
1.3数据字典
数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
数据流程图描述了系统的分解,即描述了系统由哪几部分组成、各部分之间的联系等。
在此系统中涉及到的数据字典如下:
1.3.1个人信息数据信息
(1)数据项描述
数据项:用户编号
含义说明:唯一标识每个用户
别名:uname
类型:字符型
长度:0至10
取值范围:0000000000到9999999999
取值含义:无
数据项:用户年龄
含义说明:标识每个用户年龄
别名:uage
类型:字符型
长度:0至2
取值范围:00到99
取值含义:无
数据项:用户出生日期
含义说明:标识每个用户生日
别名:ubirthday
类型:字符型
长度:0至10
取值范围:0000000000到9999999999
取值含义:无
数据项:用户电话
含义说明:标识每个用户联系号码
别名:utel
类型:字符型
长度:0至11
取值范围:00000000000到99999999999
取值含义:无
数据项:用户职业
含义说明:标识每个用户的工作名称
别名:ujob
类型:字符型
长度:0至30
取值范围:0000000000到9999999999
取值含义:无
数据项:用户地址
含义说明:标识每个用户的住址
别名:uplace
类型:字符型
长度:0至30
取值含义:无
数据项:用户性别
含义说明:标识每个用户的性别
别名:usex
类型:字符型
长度:0至2
取值范围:00到99
取值含义:无
(2)数据结构
数据结构名:用户
含义说明:是个人信息系统的主体数据结构,定义了一个用户的有关信息组成:姓名,年龄,性别,出生日期,电话,QQ,职业,地址
(3)数据流
数据结构名:用户添加信息
说明:用户添加有关各种自己的信息
数据流来源:用户
数据流去想:保存
(4)数据存储
数据存储名:用户表
说明:记录用户的信息
流入数据:来源用户
流出数据:无
1.3.2通讯录
(1)数据项描述
数据项:用户编号
含义说明:唯一标识每个用户
别名:uname
类型:字符型
长度:0至10
取值范围:0000000000到9999999999 取值含义:无
数据项:联系人编号
含义说明:唯一标识每个联系人
别名:name
类型:字符型
长度:0至10
取值范围:0000000000到9999999999 取值含义:无
数据项:与用户关系
含义说明:标识与用户关系
别名:relation
类型:字符型
长度:0至10
取值范围:0000000000到9999999999 取值含义:无
数据项:联系人电话
含义说明:标识每个用户联系号码
别名:tel
类型:字符型
长度:0至11
取值范围:00000000000到99999999999
取值含义:无
数据项:联系人 QQ
含义说明:标识每个用户网络联系方式
别名:QQ
类型:字符型
长度:0至15
取值范围:000000000000000到999999999999999
取值含义:无
(2)数据结构
数据结构名:联系人
含义说明:是通讯录的主体定义了一个联系人的有关的信息组成:用户名,姓名,关系,电话,QQ,地址
(3)数据流
数据流名:添加的联系人信息
说明:联系人的各种信息
数据来源:用户
数据流向:保存
(4)数据存储
数据存储名:通讯录表
说明:记录联系人的信息
流入数据流:用户
流出数据流:无
1.3.3日记本
(1)数据项
数据项:用户编号
含义说明:唯一标识每个用户
别名:uname
类型:字符型
长度:0至10
取值范围:0000000000到9999999999
取值含义:无
数据项:日记主题
含义说明:日记的标题
别名:title
类型:字符型
长度:0至20
取值范围:00000000000000000000到99999999999999999999 取值含义:无
数据项:日记添加时间
含义说明:写日记的时间
别名:addtime
类型:字符型
长度:0至10
取值含义:无
数据项:事件发生地点
含义说明:发生事件的地方
别名:place
类型:字符型
长度:0至10
取值范围:0000000000到9999999999
取值含义:无
数据项:事件
含义说明:发生事件的具体的内容
别名:things
类型:字符型
长度:0至50
取值含义:无
(2)数据结构
数据结构名:日记
含义说明:定义了有关日记的内容
组成:用户名,主题,添加时间,地点,内容
(3)数据流
数据流名:添加日记内容
说明:添加日记的内容
数据来源:用户
数据流向:保存
(4)数据存储
数据存储名:日记表
说明:记录日记的内容
流入数据流:来源用户
流出数据流:无
1.3.4备忘录
(1)数据项
数据项:用户编号
含义说明:唯一标识每个用户
别名:uname
类型:字符型
长度:0至10
取值范围:0000000000到9999999999
取值含义:无
数据项:提醒时间
含义说明:被提醒的时间
别名:btime
类型:字符型
长度:0至10
取值范围:0000000000到9999999999
取值含义:无
数据项:被提醒的事件发生地点
含义说明:发生事件的地方
别名:place
类型:字符型
长度:0至10
取值范围:0000000000到9999999999
取值含义:无
数据项:事件
含义说明:发生事件的具体的内容
别名:things
类型:字符型
长度:0至50
取值含义:无
数据项:备忘录添加时间
含义说明:添加备忘的时间
别名:addtime
类型:字符型
长度:0至10
取值范围:0000000000到9999999999
取值含义:无
(2)数据结构
数据结构名:备忘录
含义说明:定义了被提醒的事情内容
组成:用户名,时间,地点,事件,添加时间
(3)数据流
数据流名:添加备忘内容
说明:添加的备忘的有关内容
数据流来源:用户
数据流去向:保存
(4)数据存储
数据存储名:备忘录表
说明:记录备忘录的内容
流入数据流:来源用户
流出数据流:无
1.3.5财务表
(1)数据项
数据项:用户编号
含义说明:唯一标识每个用户
别名:uname
类型:字符型
长度:0至10
取值范围:0000000000到9999999999 取值含义:无
数据项:项目
含义说明:支出或是收入
别名:project
类型:字符型
长度:0至30
取值含义:无
数据项:数额
含义说明:收入或是支出的数目
别名:imoney
类型:整数型
取值含义:无
数据项:财务记录添加时间
含义说明:财务记录的时间
别名:addtime
类型:字符型
长度:0至10
取值范围:0000000000到9999999999
取值含义:无
(2)数据结构
数据结构名:财务记录
含义说明:定义了有关财务记录的信息
组成:用户名,项目,数额,添加时间
(3)数据流
数据流名:财务添加记录‘
说明:添加的记录信息
数据流来源:用户
数据去向:保存
(4)数据存储
数据存储名:财务记录表
说明:记录有关支出和收入的内容
流入数据流:用户
流出数据流:无
2 概念设计
基本项构思ERD的四项基本原则:
(1)原则1(确定实体):能独立存在的事物,例如人,物,事,地,团体,机构等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。
(2)原则2(确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有,包含,配合等等,当需要予以关注时,应作为联系。
实体间的联系可划分为一对一,一对多,多对多等三类,在确定联系时还要确定其类型。
(3)原则3(确定属性):实体的属性是实体的本质特征。
实体应有标志属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识,联系的属性是联系的结果或状态。
(4)原则4(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。
经过上述系统功能分析和需求总结,设计如下面所示的E-R图。
2.1分E-R图
(1)个人信息:用户ID,用户密码,姓名,性别,出生日期,QQ,电话,工作单
位地址,电话,QQ,职业,爱好
图2-1
2.1.2日记本:标识,时间,地点,事件,主题
图2-2
2.1.3备忘录:标识,时间,地点,事件。
图 2-3
2.1.4个人财务:标识,收入,支出,消费项目,消费金额,消费时间,记录添
加时间
图2-4
4.2总E-R图
图2-5
3 逻辑设计
3.1关系模式转化
关系模型的逻辑结构是一组关系模式的集合,将E-R图转换为关系模型就是要将实体型,实体的属性和实体型之间的联系转换为关系模式。
由ERD导出一般关系模型的四条原则:
(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
(3)一个m:n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
(4) 3个或3个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系项连接的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
由此可得到如下关系
用户(帐号,密码,姓名,性别,年龄,出生日期,地址,电话,QQ,职业,爱好)
日记(用户名,记录时间,标题,时间,地点,事件)
备忘录(用户名,记录时间,时间,地点,事件)
通讯录(用户名,姓名,电话,地址)
财务管理(用户名,项目,收入,支出,数额,添加时间,时间)
3.2关系模式规范化
经过分析分析,必须将财务管理用投影分解发分解成支出表和收入表,不然删除支出或是收入时都会错误删除另一项,可等规范化的3NF如下:用户(姓名,性别,年龄,出身日期,地址,电话,QQ,职业)
日记(用户名,记录时间,标题,时间,地点,事件)
备忘录(用户名,记录时间,时间,地点,事件)
通讯录(用户名,姓名,电话,地址)
收入(用户名,项目,数额,添加时间,收入)
支出(用户名,项目,支出,数额,添加时间)
3.3表的确定
3.3.1用户表yhb的确定
3.3.2通讯录表txl的确立
3.3.3日记表rjb的确立
3.3.4备忘录表BWL的确定
3.3.5收入表的确定
3.3.6支出表的确立
4.物理设计与实现4.1创建数据库
4.2创建表
4.2.1创建用户表
USE grxx
GO
CREATE TABLE yhb
(
uname varchar(10)PRIMARY KEY,
uage int NULL,
ubirthday datetime NULL,
utel varchar(11)NULL,
uqq VarChar(15)NULL,
ujob varchar(30)null,
uplace varchar(30)null,
usex varchar(2)null );
4.2.2创建通讯录表
4.2.3创建备忘录表
4.2.4创建收入表 income
4.2.4创建支出表4.2.5创建日记表
4.3数据插入
4.3.1在用户表中插入数据
USE grxx
GO
insert into yhb
values
(
'黄茂',23,'5月日','136****8921',
'145812478','学生','武昌分校','男' )
go
insert into yhb
values
(
'李霞',22,'11月日','178****2456', '145476548','学生','武昌分校','女' )
go
insert into yhb
values
(
'戟长峰',24,'8月日','186****8145', '375364119','学生','武昌分校','男' )
go
insert into yhb
values
(
'山云利',24,'7月日','136****3303', '15842586','学生','武昌分校','女'
)
go
insert into yhb
values
(
'谭小小',22,'12月日','158****2156', '58741254','学生','武昌分校','女'
)
go
insert into yhb
values
(
'李云',23,'4月日','158****4535', '145894125','学生','武昌分校','女' )
go
insert into yhb
values
(
'刘超',24,'3月日','136****6764', '145345548','学生','武昌分校','男' )
go
insert into yhb
values
(
'肖运',22,'3月日','135****6824', '125425688','学生','武昌分校','男' )
go
insert into yhb
values
(
'鲁建',22,'6月日','136****5876', '254782548','学生','武昌分校','男' )
go
insert into yhb
values
(
'周明',23,'8月日','136****9689', '145782548','学生','武昌分校','男' )
go
insert into yhb
values
(
'高小生',23,'4月日','138****6721', '156812548','学生','武昌分校','男' )
go
insert into yhb
values
(
'彭炫',23,'8月日','136****2424', '346832568','学生','武昌分校','男'
)
go
insert into yhb
values
(
'杨鼎',21,'9月日','134****8967', '172412548','学生','武昌分校','男' )
go
insert into yhb
values
(
'易中天',22,'8月日','153****2446', '892345548','学生','武昌分校','男' )
go
insert into yhb
values
(
'井小龙',20,'2月日','136****3453', '784532548','学生','武昌分校','男' )
go
insert into yhb
values
(
'汪浩',22,'7月日','136****4557', '145351458','学生','武昌分校','男' )
go
insert into yhb
values
(
'高超',22'9月日','189****0987',
'145812548','学生','武昌分校','男' )
go
insert into yhb
values
(
'陶丽',22,'8月日','136****2489', '145467548','学生','武昌分校','女' )
go
insert into yhb
values
(
'赵钱',21,'5月日','136****8425', '756312548','学生','武昌分校','男' )
go
insert into yhb
values
(
'郑天',22,'2月日','136****5323', '795412548','学生','武昌分校','男' )
go
insert into yhb
values
(
'王建',21,'7月日','135584154',
'145854548','学生','武昌分校','男' )
Go
4.3.2在备忘录表中插入数据
USE grxx
GO
insert into bwl
values
(
'戟长峰','5月日','体育馆',
'看比赛','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','自习室', '看书','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','堕落一街', '约同学吃饭','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '帮同学弄电脑','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','火车站', '帮同学买票','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '给家里打电话','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','养老院', '看望老人','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','光谷',
'义卖报纸','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '研究u盘装系统','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '研究word密码破解','5月日' )
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '报名支教','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '约同学晒太阳','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','操场',
'打羽毛球','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '找辅导员','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '写实验报告','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','户部巷', '去户部巷吃自助餐','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '取钱','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '图书馆还书','5月日'
)
go
insert into bwl
values
(
'戟长峰','5月日','武昌分校', '淘宝商城买背包','5月日'
)
go
insert into bwl
values
(
'戟长峰','6月日','武昌分校',
'过“六一”','5月日'
)
Go
4.3.3在通讯录表中插入数据
USE grxx
GO
insert into txl
values
(
'戟长峰','黄茂','136****8921','同学', '武昌分校','学生','145812478'
)
go
insert into txl
values
(
'戟长峰','李霞','178****2456','同学', '武昌分校','学生','145476548'
)
go
insert into txl
values
(
'戟长峰','山云利','136****3303','同学', '武昌分校','学生','15842586'
)
go
insert into txl
values
(
'戟长峰','谭小小','158****2156','同学', '武昌分校','学生','58741254'
)
go
insert into txl
values
(
'戟长峰','李云','158****4535','同学', '武昌分校','学生','145894125'
)
go
insert into txl
values
(
'戟长峰','刘超','136****6764','同学', '武昌分校','学生','145345548'
)
go
insert into txl
values
(
'戟长峰','肖运','135****6824','同学', '武昌分校','学生','125425688'
)
go
insert into txl
values
(
'戟长峰','鲁建','136****5876','同学', '武昌分校','学生','254782548'
)
go
insert into txl
values
(
'戟长峰','周明','136****9689','同学', '武昌分校','学生','145782548'
)
go
insert into txl
values
(
'戟长峰','高小生','138****6721','同学', '武昌分校','学生','156812548'
)
go
insert into txl
values
(
'戟长峰','彭炫','136****2424','同学', '武昌分校','学生','346832568'
)
go
insert into txl
values
(
'戟长峰','杨鼎','134****8967','同学', '武昌分校','学生','172412548'
)
go
insert into txl
values
(
'戟长峰','易中天','153****2446','同学', '武昌分校','学生','892345548'
)
go
insert into txl
values
(
'戟长峰','井小龙','136****3453','同学', '武昌分校','学生','784532548'
)
go
insert into txl
values
(
'戟长峰','汪浩','136****4557','同学', '武昌分校','学生','145351458'
)
go
insert into txl
values
(
'戟长峰','高超','189****0987','同学',
'武昌分校','学生','145812548'
)
go
insert into txl
values
(
'戟长峰','陶丽','136****2489','同学', '武昌分校','学生','145467548'
)
go
insert into txl
values
(
'戟长峰','赵钱','136****8425','同学', '武昌分校','学生','756312548'
)
go
insert into txl
values
(
'戟长峰','郑天','136****5323','同学', '武昌分校','学生','795412548'
)
go
insert into txl
values
(
'戟长峰','王建','135584154','同学',
'武昌分校','学生','145854548'
)
Go
4.3.4在日记表中插入数据USE grxx
GO
insert into rjb
values
(
'戟长峰','很开心','12月号',
'堕落一街','全班同学一起吃饭' )
go
insert into rjb
values
(
'戟长峰','感觉蛮好','12月号', '操场','和朋友晒太阳'
)
go
insert into rjb
values
(
'戟长峰','不爽','12月号',
'教室','作业很用心做,只得了B' )
go
insert into rjb
values
(
'戟长峰','烦躁','12月号',
'寝室','一下午时间被浪费'
)
go
insert into rjb
values
(
'戟长峰','实惠','12月号',
'户部巷','寝室同学一起吃自助餐' )
go
insert into rjb
values
(
'戟长峰','不舒服','12月号',
'图书馆','看书的时候总是走神'
go
insert into rjb
values
(
'戟长峰','头痛','12月号',
'寝室','看小说看到点,头痛'
)
go
insert into rjb
values
(
'戟长峰','温馨','12月号',
'大活','参加同学班级晚会'
)
go
insert into rjb
values
(
'戟长峰','心胸开阔','12月号',
'学校','来的很突然,让自己难以接受,
但还是要接受,心胸就是这样撑大的'
)
go
insert into rjb
values
(
'戟长峰','感悟','12月号',
'寝室','不要羡慕别人,自己有点本事,还担心什么呢?' )
go
insert into rjb
values
(
'戟长峰','悟','12月号',
'寝室','孤独市一中享受,不一定要与人分享'
)
go
insert into rjb
values
(
'戟长峰','紧迫','12月号',
'寝室','大学快完了,我却还没学到什么东西'
)
insert into rjb
values
(
'戟长峰','担心','12月号',
'寝室','同学们都出去培训了,我该怎么办?'
)
go
insert into rjb
values
(
'戟长峰','坦然','12月号',
'寝室','做好自己的事,从容面对未来,就在平时' )
go
insert into rjb
values
(
'戟长峰','颓废','12月号',
'寝室','玩了一天的游戏'
)
go
insert into rjb
values
(
'戟长峰','疑问','12月号',
'寝室','为什么我都无法控制自己行为'
)
go
insert into rjb
values
(
'戟长峰','决心','12月号',
'寝室','要改变自己,必须改变自己的习惯'
)
go
insert into rjb
values
(
'戟长峰','说做就做','12月号',
'寝室','游戏是拿来休闲的,不是主业'
)
go
insert into rjb
values
(
'戟长峰','坚持','12月号',
'寝室','我之所以过的不好,是因为我没坚持' )
go
insert into rjb
values
(
'戟长峰','努力','12月号',
'寝室','小小在奋斗,我不能落后'
)
Go
4.3.5在收入表中插入数据
USE grxx
GO
insert into income
values
(
'戟长峰','生活费',800,'12月号'
)
go
insert into income
values
(
'戟长峰','生活费',800,'1月号'
)
go
insert into income
values
(
'戟长峰','生活费',800,'2月号' )
go
insert into income
values
(
'戟长峰','生活费',800,'3月号' )
go
insert into income
values
(
'戟长峰','生活费',800,'4月号' )
go
insert into income
values
(
'戟长峰','生活费',800,'5月号' )
go
insert into income
values
(
'戟长峰','生活费',800,'6月号' )
go
insert into income
values
(
'戟长峰','生活费',800,'7月号' )
go
insert into income
values
(
'戟长峰','生活费',800,'8月号' )
go
insert into income
values
(
'戟长峰','生活费',800,'9月号'
)
go
insert into income
values
(
'戟长峰','生活费',800,'10月号'
)
go
insert into income
values
(
'戟长峰','生活费',800,'11月号'
)
Go
4.3.6在支出表中插入数据USE grxx
GO
insert into out
values
(
'戟长峰','请同学吃饭',50,'12月号' )
go
insert into out
values
(
'戟长峰','买袜子',18,'12月号'
)
go
insert into out
values
(
'戟长峰','买外套',220,'12月号'
)
go
insert into out
values
(
'戟长峰','买背包',108,'12月号'
)
go
insert into out
values
(
'戟长峰','买U盘',60,'1月号'
)
go
insert into out
values
(
'戟长峰','吃西餐',58,'3月号'
)
go
insert into out
values
(
'戟长峰','生活用品',200,'3月号' )
go
insert into out
values
(
'戟长峰','借给同学钱',400,'4月号' )
go
insert into out
values
(
'戟长峰','去木兰山',200,'4月号' )
go
insert into out
values
(
'戟长峰','看电影',30,'5月号'
)
go
insert into out
values
(
'戟长峰','送礼物',50,'5月号'
)
go
insert into out
values
(
'戟长峰','买钢笔',100,'5月号'
)
go
insert into out
values
(
'戟长峰','冲点卡',30,'6月号'
)
go
insert into out
values
(
'戟长峰','借钱同学',300,'6月号' )
go
insert into out
values
(
'戟长峰','支教',1000,'6月号'
)
go
insert into out
values
(
'戟长峰','买移动硬盘',350,'6月号' )
go
insert into out
values
(
'戟长峰','火车票',115,'7月号' )
go
insert into out
values
(
'戟长峰','买礼物',200,'8月号' )
go
insert into out
values
(
'戟长峰','生活用品',200,'9月号' )
go
insert into out
values
(
'戟长峰','电风扇',60,'9月号'
)
go
4.4创建视图
在备忘表创建视图
4.4.4在通讯录表创建视图。