开发工具与关键技术:SQL 数据库分析
作者:微凉之夏
撰写日期:2019年06月03日

我想当你们大家刚拿到项目时,所看到的都是一个文档类型的文件,里面只有图片和文字说明,我不知道大家刚拿到项目的想法,而我自已的第一时间拿到项目打开看到里面的内容是是一脸蒙蔽的心里想着肯定完蛋了,理由很简单就是看到看不懂里面的内容。后来幸好老师教我们如何分析数据库的内容,想要做好一个项目当然要用到一个重要的文件(数据库啦)你们说是不是,但是呢我们要怎样去分析数据库呢?也是个问题对吧!那么我们接下来就来看下如何分析吧。
我们要进入到项目的文档中来大致看一遍项目中的内容,我做的项目是帝友系统后前台的详情操作,后台大概的流程分为管理员的登录分为八大部分分别为首页借贷管理资金管理认证管理用户管理内容管理系统设置管理推广管理,前台则是六大部分分别是注册与登录我要借款我要投资我的账户关于我们新手帮助。那我就抽出其中的几张图片来说下如何分析数据库吧。
首先我们得清楚下项目的流程和还要懂得如何分析数据库是吧,如果你都不清楚流程的话那要怎样做下去啊对吧,大概理清了细路我们就好分析数据库了和怎样做下面的内容,下面请看如下页面图:


上面是借款页面那么当然有个借款表啦是吧,如下是上图的数据库分析:
每张表都有个属于他自已的主键ID,而且是唯一的,不可代替的。下面有些带括号的是为了方便清楚你在那张表中所用到的内容信息,这样子就可以更加清晰了。也有些是表中所用到的内容信息这样也清晰的看出这表中所有的内容信息。
外键也是不能随随便便就能给的是要看那借款表中是否包含着外键那些张表中的内容,同时我们也有个问题是:我那知道它是不是这张表中的外键呢?是吧。那是因为借款表中摄制到那些外键中的内容,这样我们才能够把那些外键放到借款表中。
借款表:借款ID、用户信息ID(用户名称)、借款类型ID(借款类型名称)、还款方式ID(还款方式名称)、贷款号、借款标题、借款金额、利率、借款期限、提交时间、状态、撤回理由、管理备注、延期天数
用户信息表:用户信息ID、用户名称、
借款类型表:借款类型ID、借款类型名称(信用标、流转标、抵押标……)、
还款表:还款ID、借款ID(贷款号、借款标题、借款金额、借款类型ID(借款类型名称)、)、应还时间、应还利息、实还时间、实还总额、状态
还款方式表:还款方式ID、还款方式名称(等额本息、按季还款、到期还本还息、到期还本,按月付息、到期还本,按天付息、到期还本,按月付息,且当月还息)
用户名称当然是在用户表中的,为什么呢一个系统中肯定会有一个或者多个用户信息的对吧,所以我们得用单独一个表来存放用户中的信息,借款表中因为有着用户信息中的用户名称,所以我们的把用户信息ID主键放到借款表中作为外键来存在,这样子的话借款表中就已经存在有用户名称了。
再借款表中借款类型是可以选择的,所以说借款类型它有着自已的ID和名称,同时也要注意了不能再把借款类型放到借款表中,给它重新起一张表同样的把借款类型ID放到借款表中作为外键那样就可以获取到借款类型中它所需要的内容了。
还款方式也是一样有着多个选择,所以它同样的具有它自已的一张表,有独立的还款方式ID,同时还款方式中的内容也在借款表中出现,所以也要把还款方式的ID放到借款表中作为外键来获取还款方式中的内容。
分析完这个页面图片之后我们还要接着往下看,下面在看下这几张页面图片又可以得到那些信息呢?


这两张同样也是在借款表中的样式里面的,可以看到图中有:撤回理由、管理备注、延期天数这三个信息,当然也要放到借款表中的啦。从上面这几张页面图 看就可以分析出五张表并且这几张表都是有着一定的关联的。(上面中括号中是从这些页面中分析出来的数据库表,其他的是里面的分析中所需要了解的内容。)
建好表之后呢,我们要检查表与表之间是否重复,基本上是不会重复的但也总有些要些意外的,所以要建好表之后重新检查下。如果没有重复的表那么紧接着再看我们数据库中的三范式是否对应了,何为三范式呢?
三范式就是为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则,在关系型数据库中这种规则就称为范式,范式是符合某一种设计要求的总结,要想设计一个结构合理的关系型数据库,必须满足一定的范式。三范式的要求是:

  1. 每一列只有一个值(字段(列):字段原子性\无重复的列)。
  2. 每一行都能区分(行的原子性\属性完全依赖于主键)。
  3. 每一个表都不包含其他表已经包含的非主关键字信息(非键值属性在整个数据库中是唯一的\属性不依赖于其它非主属性)。
    表与表之间是否符合三范式,我们的第一范式主键是否作为唯一标志(一般情况主键就是作为唯一标志),看了下我们表都有着它们独有的主键那么第一范式显现,接下来看第二范式每个字段必须要跟我们的整个表是直接关联的,没有直接关联的不能放到同一个表中,还有最后一范式就是我们的表跟表之间的关系(一对一的关系、一对多的关系、多对多的关系),举个例子:本身还款表已经跟借款表关联了,借款表本身就包含有借款类型表所以我们就不能够出现关系重复,因为我们通过借款表可以找到借款类型,所以我们新增借款类型时只需要在借款表中新增就可以了,不需要再到还款表中新增(如上面标有红色字体的内容)。假如你两个地方都放有一个借款类型表,那么你是不是两个地方都要新增了是吧,所以不需要重复。我们会发现本来跟它直接关联由于我们可以根据借款表找到我们所需要的借款类型,所以他们之间的关系就会关联到一起了。
    分析完了就像我那样在一个word文档中列好表,列好之后就把它翻译成英文之后就去PowerDesigner(是数据模型)中创建数据库(其实是你在里面创建好模型之后就把你所创建好的数据库导入SQL Server里面去,这样数据就建好了,建好之后还有很多步骤的需要你慢慢的去完善),(虽然不知道我所分析出来的数据是不是正确的,但是其中的步骤是所需要的,但是我会更加努力的。)

如何分析项目中的数据库相关推荐

  1. XamarinSQLite教程在Xamarin.Android项目中提取数据库文件

    XamarinSQLite教程在Xamarin.Android项目中提取数据库文件 由于不能直接打开该文件,开发者需要先将数据库文件从Android系统中提取出来.操作步骤如下. (5)选择MyDoc ...

  2. XamarinSQLite教程在Xamarin.Android项目中定位数据库文件

    XamarinSQLite教程在Xamarin.Android项目中定位数据库文件 实际开发中,经常需要验证数据库操作的正确性.这个时候,需要打开数据库文件,进行确认.下面是如何找到MyDocumen ...

  3. XamarinSQLite教程在Xamarin.Android项目中使用数据库

    XamarinSQLite教程在Xamarin.Android项目中使用数据库 在Xamarin.Android项目中使用预设数据库的具体操作步骤如下: (1)创建一个Xamarin.Android项 ...

  4. XamarinSQLite教程Xamarin.iOS项目中打开数据库文件

    XamarinSQLite教程Xamarin.iOS项目中打开数据库文件 以下是打开MyDocuments.db数据库的具体操作步骤: (1)将Mac电脑上的MyDocuments.db数据库移动到W ...

  5. XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件

    XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件 开发者可以在指定的路径中找到复制的数据库文件,具体的操作步骤如下: (1)单击Mac电脑中Finder菜单中的"前 ...

  6. xamarin怎么调用java的_XamarinSQLite教程在Xamarin.Android项目中使用数据库

    XamarinSQLite教程在Xamarin.Android项目中使用数据库 在Xamarin.Android项目中使用预设数据库的具体操作步骤如下: (1)创建一个Xamarin.Android项 ...

  7. 项目中对数据库的操作

    首先,介绍一下关系型数据库的相关知识: 我们最起码我说接触的都是关系模型: 关系数据结构:关系模型的结构非常单一.关系型数据库以行和列的形式存储数据. 关系操作:关系模型给出了关系操作的能力. 关系完 ...

  8. 物流项目中Oracle 数据库的使用及OGG是如何同步

    文章目录 业务服务器之Oracle 数据库 06-[掌握]-OGG 数据同步之功能概述 07-[掌握]-OGG 数据同步之基本原理及架构 08-[理解]-OGG 数据同步之拓扑结构及支持环境 09-[ ...

  9. go项目中使用数据库的配置文件

    首先在项目的根目录下创建一个config.json文件,内容如下: {"database": {"Dialect": "mysql",&qu ...

最新文章

  1. Springboot启动原理解析
  2. STM32L1X系列GPIO运用
  3. 学习office add-in
  4. linux shell用户交互,鱼 - 一个明智的和用户友好的交互式shell为Linux
  5. javafx如何带菜单_JavaFX技巧30:带有DropShadow的ScrollPane
  6. logback logback.xml 常用配置详解
  7. java对象克隆的例子_Java对象克隆
  8. Linux snmp 时间戳,linux snmp计数器汇总
  9. linux禁用ssh弱加密算法,SSHSSL弱加密算法漏洞修复
  10. Python学习笔记day10
  11. bp神经网络matlab代码_4层bp神经网络详细推导以及代码(矩阵化运算)
  12. 系统集成项目管理工程师2021年报名时间
  13. r语言quantmond_R中的关于极值理论的包
  14. python画圣诞帽_用Python给头像戴圣诞帽
  15. 第16届东北四省赛题解
  16. dz.27z.co index.php,【DZ插件】VIP客户组开通 v2.0.2(zms)
  17. 深圳租房信息聚类与回归分析
  18. Springboot实现图书馆座位预约管理系统之自习室预约占座系统源码
  19. Chrome欲撼IE浏览器 Opera参战扩大中国投资
  20. PS技能后期制作梦幻效果——奥顿效果(The Orton Effect)

热门文章

  1. c++随机数问题研究
  2. execv shell_Linux中exec命令相关
  3. 单词串联记忆 - 1
  4. 【IVI】6. [Android Automotive]蓝牙
  5. 概率论基础—什么是概率?
  6. Debian内核编译参考(基于2.6.15-6)
  7. 地球科学数据集成可视化软件(IDV)
  8. NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者
  9. libsvm数据格式
  10. 糖儿飞教你学C++ Socket网络编程——18. MFC WinSock版的TCP通信程序