编写目的
该博客是小账本在前期开发阶段针对用户所进行的数据库设计,通过ER图,数据字典,数据流图来对该软件的数据库开发进行设计,并且附上部分源代码进行参考。
背景
待开发的软件名称为:小账本
作业名称:第三次团队博客
定义
ER图:E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型
UML图:UML-Unified Model Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。
数据字典:数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。
数据流图:简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
小账本ER图设计
由于该任务的小组成员表示目前的er图已经渐渐往uml图的趋势发展,所以该er图包含了一部分uml图的特征
小账本数据表
数据表的设计通过数据流图和数据字典分别设计
数据字典
用户表
字段名
中文名
数据类型
主键
外键
说明
U_id
用户id
int
PK
不能为空
Con_id
配置id
int
FK1
不能为空
U_number
登录账号
varchar(20)
FK2
不能为空
U_name
用户名
varchar(50)
用户昵称
U_gender
性别
char(2)
性别可为空
U_phone
电话
Char(11)
分类表
字段名
中文名
数据类型
主键
外键
说明
C_id
类别id
int
PK
不能为空
type
类别
varchar(255)
配置表
字段名
中文名
数据类型
主键
外键
说明
Con_id
配置id
int
PK
不能为空
U_id
用户id
int
FK
不能为空
key_
配置信息
varchar(255)
配置信息按照键值对的形式出现 ,类型是varchar(255)
value
配置信息的值
配置信息的值, 类型是 varchar(255)
登录表
字段名
中文名
数据类型
主键
外键
说明
U_number
账号
varchar(20)
PK
不能为空
U_id
用户id
int
FK
不能为空
U_password
密码
varchar(50)
密码要求保密性高
消费表
字段名
中文名
数据类型
主键
外键
说明
U_id
用户id
int
PK
FK1
不能为空
C_id
类别id
int
PK
FK2
不能为空
spend
消费金额
int
date
日期
Date
默认系统时间
Comment
备注
varchar(255)
收入表
字段名
中文名
数据类型
主键
外键
说明
U_id
用户id
int
PK
FK1
不能为空
C_id
类别id
int
PK
FK2
不能为空
earn
收入金额
int
date
日期
Date
默认系统时间
Comment
备注
varchar(255)
数据流图
小账本顶层数据流图
细化记账功能数据流图
再次细化该数据流图
用户登录数据流图
查询功能数据流图
心愿功能数据流图
数据库源代码设计
SET FOREIGN_KEY_CHECKS = 0;DROP TABLE IF EXISTS `user`;DROP TABLE IF EXISTS`property`;DROP TABLE IF EXISTS`operating`;DROP TABLE IF EXISTS`budget`;DROP TABLE IF EXISTS`wish`;SET FOREIGN_KEY_CHECKS = 1;CREATE TABLE `user` (
`id`char(12) NOT NULL,
`username`char(20) NOT NULL,
`descriptin`varchar NOT NULL,PRIMARY KEY(`id`)
);CREATE TABLE`property` (
`id`char(1) NOT NULL,
`account`char(18) NOT NULL,
`balance`float(8) NOT NULL,
`uid`char(12) NOT NULL,PRIMARY KEY(`id`, `uid`)
);CREATE TABLE`operating` (
`id`char(12) NOT NULL,
`type` boolNOT NULL,
`account`float(8) NOT NULL,
`uid`char(12) NOT NULL,
`pid`char(1) NOT NULL,PRIMARY KEY(`id`, `uid`, `pid`)
);CREATE TABLE`budget` (
`id`char(12) NOT NULL,
`schedule`float(8) NOT NULL,
`uid`char(12) NOT NULL,PRIMARY KEY(`id`, `uid`)
);CREATE TABLE`wish` (
`id`char(12) NOT NULL,
`description`varchar NOT NULL,
`finishtime` dateNOT NULL,
`uid`char(12) NOT NULL,PRIMARY KEY(`id`, `uid`)
);ALTER TABLE `property` ADD FOREIGN KEY (`uid`) REFERENCES `user`(`id`);ALTER TABLE `operating` ADD FOREIGN KEY (`uid`) REFERENCES `user`(`id`);ALTER TABLE `operating` ADD FOREIGN KEY (`pid`) REFERENCES`property`(`id`);ALTER TABLE `budget` ADD FOREIGN KEY (`uid`) REFERENCES `user`(`id`);ALTER TABLE `wish` ADD FOREIGN KEY (`uid`) REFERENCES `user`(`id`);