zoukankan      html  css  js  c++  java
  • 数据库设计简要说明

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

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

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

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

  • 相关阅读:
    Md5密码加密
    Java Email 发送
    java 对象的修改
    修改表内部分字段根据查询而来 update select from
    转载:MySQL join on +多条件与where的区别
    反射机制
    转载-Java Nio
    Java 中的static
    springMVC的请求流程
    myEclipse 中的svn图标详解
  • 原文地址:https://www.cnblogs.com/coodream2009/p/9523013.html
Copyright © 2011-2022 走看看