尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

数据库设计:MySQL概念结构设计E-R图

数据库设计:MySQL概念结构设计E-R图 前言在数据库中表和表之间也存在一定的关系并且这些关系可以用E-R图来呈现一、数据表之间的关系表与表之间有多种关系一对一、一对多、多对多当然还有无关系这个就不提了1.一对一例如班主任表和班级表一个班级只有一个班主任一个班主任只会管理一个班级创建了班级表和班主任表怎么描述两个表之间的关系呢设置一个关联字段将一张表的主键添加到另一张表当中这个关联字段设置在那张表里都可以2.一对多例如班级表和学生表一个班级有多个学生但是一个学生只能属于一个班级创建了班级表和学生表如何描述两个表之间的一对多的关系呢将关联字段放在多对应的表里面如果放在一对应的表里面那么每个班级对应的学生id列就会包含多个值这样不符合建表的规则因此只能放在多表那边3.多对多多对多的关系其实是很常见的比如学生在选课的时候会选择多门课程一门课程被多个学生选择创建了学生表和课程表要如何设置多对多的关系呢在一对多里面提到不能放在一表这边是因为一个属性可能会包含多个值这里也一样一个学生对应的课程有多个不能放在学生表这边课程包含的学生也有多个也不能放在课程表这边因此我们需要单独建一个关系表也叫映射表映射表用来存放两张表的有关联的属性一般是主键4.设计在描述表之间的关系后还可以使用E-R图来清晰的看出表与表之间的关系二、概念结构设计E-R图1.什么是概念结构设计概念结构设计是数据库设计的第一步作用是不关心数据库、不关心表、不关心字段类型只用最直观的方式描述业务里有哪些数据、它们之间是什么关系。它的标准方法就是E-R 图实体 - 联系图2.数据库设计的基本流程概念结构设计是数据库开发的关键阶段主要任务是将用户需求抽象为信息结构E-R模型。需求分析明确数据范围、用户操作及约束条件。概念设计通过E-R图描述实体、属性和关系。逻辑设计将E-R图转换为关系模式如表结构。物理设计优化存储结构、索引等实现细节。3.E-R模型核心要素1实体Entity表示独立存在的对象如“学生”、“课程”。实体用矩形表示属性用椭圆表示。2属性Attribute简单属性不可再分如学号。复合属性可拆分为更小单元如地址包含省、市。派生属性通过计算得到如年龄根据出生日期推算。3关系Relationship描述实体间的关联用菱形表示。一对一1:1如“学生”与“学籍档案”。一对多1:N如“班级”与“学生”。多对多M:N如“学生”与“课程”需通过中间表实现。结合E-R图来认识这三种关系一对一关系1:1记录之间一一对应例如上图的学生和饭卡之间的关系一个学生有一张饭卡一张饭卡属于一个学生两者一一对应一对多关系1:n一个表中的记录可以与另一个表中的多条记录关联例如办公室和饭卡之间的关系一张饭卡属于特定的办公室管辖但一个办公室可以管辖多张饭卡多对多关系m:n两个表中的记录都可以与另一个表中的多个记录关联例如“学生表”和“课程表”一个学生可以选修多门课程同时一门课程也可以被多个学生选修4.设计原则与优化避免冗余确保数据无重复存储如学生信息不应在多个表中重复。完整性约束主键唯一性、外键参照完整性。规范化至少满足第三范式3NF消除传递依赖。5.标准画法实体 矩形属性 椭圆联系 菱形用直线连接并在线上标注关系1:11:NM:N6.案例假定我们要为某社交平台建立一个数据库存储如下信息:每个用户有用户编号、姓名、手机号;每个群有群编号、群名称;每个帖子有帖子编号、发帖时间、正文;每个群有唯一的用户作为群主一个用户可以担任多个群的群主;每个群拥有多个用户每个用户可以加入多个群;每个帖子只属于一个群每个帖子有唯一的发布者每个群可有多个帖子每个用户可以发布多个帖子;有颜色的是主键请根据以上描述画出相应的E-R图
返回列表