zoukankan      html  css  js  c++  java
  • 小账本软件设计之数据库设计模式构建

    编写目的

    该博客是小账本在前期开发阶段针对用户所进行的数据库设计,通过ER图,数据字典,数据流图来对该软件的数据库开发进行设计,并且附上部分源代码进行参考。

    背景

    • 待开发的软件名称为:小账本
    • 作业名称:第三次团队博客

    定义

    1. ER图:E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型
    2. UML图:UML-Unified Model Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。
    3. 数据字典:数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。
    4. 数据流图:简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

    小账本ER图设计

    由于该任务的小组成员表示目前的er图已经渐渐往uml图的趋势发展,所以该er图包含了一部分uml图的特征 

     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` bool NOT 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` date NOT 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`);
  • 相关阅读:
    大数据用户画像方法与实践(干货 转帖)
    前端学习之路
    MySQL学习记录
    Linux 运维之路
    Python学习之路
    NgRx/Store 4 + Angular 5使用教程
    CSS实现各种形状
    CSS3实现背景透明,文字不透明
    CSS实现网页背景图片自适应全屏
    使用Restify+superagent做数据转发
  • 原文地址:https://www.cnblogs.com/pipi-pig/p/10856968.html
Copyright © 2011-2022 走看看