简账(开源记账软件)-数据库设计
前言
在实际的开发过程中,大家可能都是直接面向需求的,更多的是在现有的基础上怎么实现功能,从而忽略了数据库设计的重要性。
本文将介绍数据库设计的具体流程,如ER图、数据库范式等。
往期链接
- 简账主要功能介绍
- 简账后端环境简介及部署
- 简账前端环境简介及部署
- 解决小程序扫码授权提示Token不能为空
一、主要步骤
一般来说数据库设计主要分为以下几个步骤
概念设计
定义
概念设计 的目标是产生反映企业组织信息需求的数据库概念结构,即概念模式。
概念模式 是独立于数据库逻辑结构,独立于支持数据库的 DBMS(Database Management System 数据库管理系统) ,不依赖于计算机系统的。
ER(实体联系) 模型是对现实世界的一种抽象,它的主要成份是实体、联系和属性。
一般来说,概念设计通过ER图就可以很好的展现出来了。
简账中的角色权限的ER图如下所示:
二、表设计
说到数据库设计就不得不说 数据库范式
了,一般来说遵从第三范式即可。
定义
1NF 第一范式条件:必须不包含重复组的关系,即每一列都是不可拆分的原子项。
2NF 第二范式条件:关系模式必须满足第一范式,并且所有非主属性都完全依赖于主码。
3NF 第三范式的条件:关系模型满足第二范式,所有非主属性对任何候选关键字都不存在传递依赖。即每个属性都跟主键有直接关系而不是间接关系
3NF稍微难理解一点,举个例子:
记录详情表tb_detail
表(id,用户Id,花费类别名,花费类别码,金额)这样一个表结构就不符合3NF
。因为花费类别名和花费类别码是对应的,存在传递关系。
所示正确设计应为:tb_detail
表(id,用户Id,花费类别Id),tb_spend_category
表(id,花费类别名,花费类别码)
简账中的数据库表设计如下所示:
三、总结
感谢看到最后,非常荣幸能够帮助到你~♥
简账(开源记账软件)-数据库设计相关推荐
- 简账(开源记账软件)-前端环境简介及部署
文章目录 简账(开源记账软件)-前端环境简介及部署 前言 一.前端主要技术栈简介 具体涉及的技术如下所示: Q&A 二.环境部署 1. 安装nodejs 2. 从Github上下载代码 3. ...
- 简账(开源记账软件)-功能介绍
文章目录 简账(开源记账软件)-功能介绍 前言 一.主要技术栈简介 二.主要功能 三.项目难点 四.总结 简账(开源记账软件)-功能介绍 前言 由于自己有记账的需求,在尝试使用过市面上的记账软件后,发 ...
- 安卓--记账软件课程设计
安卓课程设计 记账软件课程设计 目录 1 引言............................................................................. ...
- 基于Android的个人记账软件的设计与实现
基于Android的个人记账软件的设计与实现 [系统要求] 通过查阅和分析相关资料,应用所学知识与技术,独自完成一套基于Android的个人记账系统.系统开发过程应遵循软件工程思想,任务包括系统架构的 ...
- 基于android的记账软件,基于Android的记账软件的设计与实现
摘要: 随着经济社会的发展,人们的资金流动更加频繁,对记账的需求也逐渐提高.目前移动设备已经普及,移动记账以其随时随地记账,高效统计的特点,受到了广大记账理财人士的青睐.本文通过对国内外手机记账软件发 ...
- 基于开源物联网软件Thingsboard设计的气象六要素展示界面
基于Thingsboard设计的气象六要素展示界面 壹,概述 贰,消息格式 叁,实例测试 壹,概述 Thingsboard社区版是一款开源的物联网软件,基于Java语言开发,兼容多数物联网通信协议,包 ...
- 玩转oracle之进阶三大范式及数据库设计
三大范式 第一范式 第一范式:1NF,定义:确保每列的原子性(不可再分) --student 表 id name address 1 zs 陕西省西安市长安区 拆 id name province c ...
- 个人记账软件 共享及有条件开源
哎,看到这个就感叹我一天天的钱都花哪了,咋就剩不下钱呢. 2015年刚开始,老婆就说要记账,这一天天的不知道钱都花哪去了, 好吧.我就加班加点,通过2个星期终于搞了一套出来,虽不近完善,但基本能用了. ...
- 便捷记账本小程序+后台管理系统-JAVA【数据库设计、源码、开题报告】
第一章 绪 论 1.1选题背景 互联网是人类的基本需求,特别是在现代社会,个人压力增大,社会运作节奏高,随着互联网的快速发展,用户的需求也越来越高,用户也将越来越多依靠互联网而不是自己获取信息,使得各 ...
- 54款开源服务器软件(内容管理、数据库、电子商务、邮件服务器、文件传输、操作系统、安全、小公司服务 .
本文逐一介绍了内容管理.数据库.电子商务.邮件服务器.文件传输.操作系统.安全.小公司服务器.服务器日志文件监控和分析.存储.虚拟化.Web服务器.维基/协作及其他方面的开源服务器软件. 据斯坦福大学 ...
最新文章
- ComplexHeatmap绘制热图(一)
- mysql主键始终从小到大_Mysql从入门到入神之(四)B+树索引
- python怎么换行继续写脚本_用Python实现换行符转换的脚本的教程
- ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB
- discuz forums.inc.php,【Discuz】积分机制实现解析
- 如何用html构建ios应用,使用HTML5构建iOS原生APP(2)
- 数据结构(二)——堆
- TensorFlow笔记(8) LeNet-5卷积神经网络
- 华为帮助摩洛哥成为全球第一个5G全覆盖的国家
- asp.net抓取网页html源代码失败 只因UserAgent作怪
- 当贝显示服务器生病,【当贝市场】电视盒子卡顿的三大原因
- 计算机英语解读,解释计算机Windows的学习英语
- 公主与骑士-ZZUOJ
- python外汇兑换代码_Python爬取中国银行外汇牌价
- 泊松过程的概念及其例题分析
- Mac 配置 docker 基本操作
- PostgreSQL高效分区表实现-pg_pathman
- 你又知不知道,日有所思,夜有所梦。
- 阿里云DataWorks介绍
- 论文阅读——“推荐系统”