数据库设计简要说明

coodream2009 coodream2009     2022-12-24     727

关键词:

最近,从头做一个项目,把大概的功能捋了捋,然后做出一个原型。根据原型大家讨论,提一提建议,做一些修改和完善,我们下一步的工作就是根据原型进行程序的开发。依据原型设计要求,我们首先进行数据库的设计。

数据库的设计,网上的资料比较多,设计步骤分为六个阶段,一是需求分析阶段,了解和分析用户需求,涉及数据和处理,这一步是基础。二是概念结构设计阶段,对用户的需求进行总结、归纳和抽象,形成概念模型。三是逻辑结构设计阶段,将概念模型转换为数据库系统支持的数据模型。四是数据库物理设计阶段,为数据模型选取一个合适的物理结构,主要是存储结构和存取方法。五是数据库实施阶段,根据数据模型和物理结构,创建数据库,组织测试数据,并运行数据库。六是数据库的运行和维护,根据数据的运行情况,对数据库进行适当的调整。

我们项目没有严格按照规定的步骤进行,但也是遵循这种设计思想,把数据库设计的大概步骤和注意的问题做一些记录。步骤分为3个。一是根据需求列出事实表(提法可能不准确,暂时用这个词),也就是罗列事实,比如学校的管理系统,把学生,老师,班级,课程等以事实表的形式列出来,根据需求设计适当的字段。二是考虑事实表之间的关系,考虑各个表之间的关系,然后根据关系的不同分别处理。表间关系主要有一对一,一对多,多对多。如果是一对一,原则上可以合并,但根据含义的不同也可以分开。比如学生和用户的关系,学生表可以记录学生相关的信息,用户只是学生登录时的状态,这两个表可以分开设计。一对多,这种情况比较多,比如,A表的一条记录,在B表中多次使用,可以设计成A的主键为B的外键。班级和学生的关系是典型的一对多。多对多,这时候就需要中间表来完成,比如学生和老师就是多对多的关系,可以通过课程表作为中间表,建立老师和学生的联系,如果没有这种合适的中间表,也可以直接创建一个tableA_tableB_node的中间表。第三个步骤就是建立根据表间关系建立数据库,然后再进行功能分析,可以尝试着写接口文档,看数据结构能不能满足接口要求,如果不能实现接口功能,再进一步调整数据库。

一些注意的问题,要确定中心,围绕着那个业务展开,则这个业务表要位于整个数据库的中心,其它表(人和物)都和它有关联。交易系统就是订单,上课管理系统就是课表,等等。对A表中的数据进行分组,根据分组进行不同功能设计,可以加入group表,作为A表的外键。每个表的外键应该用不同的名称,即外键不能重复,否则在创建表的过程中会报错。

事务是什么?有哪些属性,并简要说明这些属性的含义。

...性的含义。 解答:事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begintransaction和endtransa... 查看详情

网页三剑客是指哪三个软件,并简要说明他们在网页设计中的主要功能

...学习.NET语言JAVASCRIPTHTML脚本语言等,做商务网站还要了解数据库相关知识,总之现在的网页三剑客基本名不符实了。参考技术ADreamweaverFireworksFlash 参考技术B网页三剑客网页三剑客,顾名思义,是一套强大的网页编辑工具,最初... 查看详情

javaweb基于ssm框架学生信息管理(成绩)系统设计与实现(项目源码+报告设计说明)

...3.1所使用技术的简要介绍64功能模块84.1学生信息维护84.1.1数据库设计84.1.2模块功能及流程图84.1.3程序层次结构94.1.4程序界面截图及说明124.1.5主要代码及说明134.2教师信息维护174.2.1数据库设计174.2 查看详情

关于变量类型file简要说明c

FILE*fp;FILE是变量类型,实际上是C语言定义的标准数据结构,用于文件。FILE*fp是声明,声明fp是指针zd,用来指向FILE类型的对象。fp=fopen("yssysj.txt","r");fopen标准函数,打开磁盘文件yssysj.txt,用于读,送返指针,指向FILE类型对象。f... 查看详情

驾驶人简要数据查询

详情链接:http://www.haoservice.com/docs/134上海市驾驶人简要数据查询 请求方式: GET/POST  名称类型必填说明 keystring是APIKEY recordNoString是档案编号密文方式请求参数: 名称类型必填说明 IsEncryptbool是是否... 查看详情

react简要说明

转自:http://www.infoq.com/cn/articles/subversion-front-end-ui-development-framework-react基于HTML的前端界面开发正变得越来越复杂,其本质问题基本都可以归结于如何将来自于服务器端或者用户输入的动态数据高效的反映到复杂的用户界... 查看详情

产品经理思考

...区别,包含其中存在的问题,并给出解决方案。2.如果你设计一款基于音乐的高品质内容的社交软件,给说出这么设计的原因。3.请说出一款APP的的看法,指出其中不合理的地方,并说明原因(APP如果没有合适的,可以用爱豆蔻... 查看详情

早期穿孔卡设计简要考量

穿孔卡1.雏形杰卡德提花机用穿孔纸带上的小孔,主要用来控制提花操作的步骤,即编写程序,霍列瑞斯则进一步设想要用它来储存和统计数据,发明一种自动制表的机器。两年后,霍列瑞斯博士离开了人口局,到专利事务所工... 查看详情

软件概要设计做什么,怎么做

软件概要设计做什么,怎么做一、软件设计一般流程:1、先前的软件需求分析阶段,已经搞清楚了“要解决什么问题”,并输出了《软件需要说明书》。这时一切都是理想。2、现在进入概要设计阶段,重点说清楚“总体实现方... 查看详情

结合数据结构所学知识,简要说明java语言中arraylist,linkedlist,hashset,hashmap四种结构各自的特点。

参考技术A楼主都在这里问了,为什么不百度一下呢,去找自己想要的信息,而不是在这里等。 参考技术B11111111111111112 查看详情

描述j2ee框架的多层结构,并简要说明各层的作用。

描述J2EE框架的多层结构,并简要说明各层的作用。 解答: 1)Presentationlayer(表示层) a.表示逻辑(生成界面代码) b.接收请求 c.处理业务层抛出的异常 d.负责规则验证(数据格式,数据非空等) e.流程... 查看详情

请简要说明contentprovider对外共享数据的好处

一、相关ContentProvider概念解析:1、ContentProvider简介在Android官方指出的Android的数据存储方式总共有五种,分别是:SharedPreferences、网络存储、文件存储、外储存储、SQLite。但是我们知道一般这些存储都只是在单独的一个应用程序... 查看详情

前端高级(二十五)vue2.0项目实战一配置简要说明代码简要说明import/export轮播和列表例子(代码片段)

一、启动服务自动打开浏览器运行二、配置简要说明1、node_modules  安装好的依赖文件,中间件等,所在位置 2、package.jason   配置当前项目要安装的中间件和依赖文件"name":"my-app","version":"1.0.0","description":"AVue.jsproject","au... 查看详情

initcall_debug简要说明

本文转载自:https://blog.csdn.net/zangdongming/article/details/37769265Linuxversion3.10.40 1. 使用说明Documentation/kernel-parameters.txt中的说明如下:       initcall_debug 查看详情

pgbackrest简要使用说明

测试环境:CentOSLinuxrelease7.4.1708(Core)X64PostgreSQL:10.1(Source)pgbackrest:pgbackrest-release-1.27.tar.gz 1.Test-Simple-1.302120.tar.gz#perlMakefile.PL#make#maketest............Alltestssuccessful. 查看详情

pgbackrest简要使用说明

测试环境:CentOSLinuxrelease7.4.1708(Core)X64PostgreSQL:10.1(Source)pgbackrest:pgbackrest-release-1.27.tar.gz 1.Test-Simple-1.302120.tar.gz#perlMakefile.PL#make#maketest............Alltestssuccessful. 查看详情

机动车简要数据查询

详情链接:http://www.haoservice.com/docs/135上海市机动车简要数据查询 支持格式: JSON/XML请求方式: GET/POST  名称类型必填说明 keystring是APIKEY plateNoString是号牌号码(不含简称“沪”) typeInt是号牌种类1... 查看详情

tftp简要使用说明

yum安装:tftp  tftp-server (2)启动tftp CentOS6servicexinetdrestartchkconfigtftpon  CentOS7systemctlstarttftp.socketsystemctlenabletftp.socket  (3)服务器默认的站点目录/var/lib/ 查看详情