软件设计师备考-(十四)数据库设计

14.1 数据库设计前言

14.2 数据库设计过程

14.3 ER模型

14.4 数据库设计答题技巧

14.5 数据库设计案例分析1

问题一

(1) 1:n【1对多的关系,一个员工只能属于一个部门, 一个部门可以包含多个员工】

(2) n : n 【多对多的关系,1间客房可以被多个客户订购(不同时间),1个客户可以预定多个客房】

(3) n : n 【多对多的关系,1个客户可以预定多个客房,1间客房可以被多个客户订购(不同时间)】


问题二:权限实体

  • 由题目可知,不同岗位拥有不同的权限【问题三逻辑结构设计,已经非常明显说出,权限包含,岗位,操作权限属性】
    • 一个管理员岗位为管理,可以修改多个员工的信息
    • 一个员工岗位为服务,只能修改自己的信息
    • 总结,1个权限可以对应多个员工

问题三:

  • (4)员工号、部门号
  • (5)客房号
  • (6)身份证号
  • (7)岗位
  • (8)客房号、身份证号

问题四:

  • **缺点:**违反了规范化,在做逆规范化的操作,权限与员工存在一块,导致权限重复添加多次,增加了重复率,重复的存储,增加了数据的冗余
  • **好处:**减少了连接的操作,在一张表中增加了查询的效率

14.6 数据库设计案例分析2

  • 问题:2:(a)商场编号(b)部门编号 (c)员工编号
    • 部门主键:部门编号 外键:商场编号
    • 员工主键:员工编号 外键:部门编号
    • 经理主键外键:员工编号
  • 问题3:根据问题3的说明可知,需要添加的实体是,紧急联系人
    • 实体:紧急联系人:员工编号、员工姓名、联系电话
    • 1位员工只能登记一位紧急联系人(1对1的关系),不同员工可以登记相同的紧急联系人(1位紧急联系人可以被多位员工使用,多对1的关系),所以员工与紧急联系人的关系是,n : 1

经理是特殊的员工,所以员工和经理之间的关系如图所示


文档说明:希赛教育王勇老师软件设计师教学课程,这里学习整理后进行分享

相关推荐
于烛21 分钟前
为什么hasNext() 对只有一个元素的集合返回 true?90%初学者都有的疑问
java
wuminyu28 分钟前
JVM利用io_uring优化堆外内存性能原理剖析
java·linux·c语言·jvm·c++
一米阳光86611 小时前
软考(中级)软件设计师核心笔记(8)数据结构——线性结构、数组、矩阵
数据结构·笔记·职场发展·软考·软件设计师·中级职称
半亩码田1 小时前
【.NET新特性·第11篇】C# 14 字段属性:告别手写 backing field
java·c#·.net
曹牧1 小时前
C#:问号
前端·数据库·c#
奇树谦1 小时前
《现代 Key-Value 数据库原理:从 B+Tree 到 LSM Tree》-第五篇:现代数据库横向对比
数据库·lsm-tree
李白客1 小时前
分布式集群与数据库产业:从单机到集群的架构跃迁与市场重构
数据库·分布式·架构
JAVA面经实录9172 小时前
集合框架 (六)
java·开发语言
骇客野人2 小时前
Linux 查看 Java 进程常用命令
java·linux·运维
福大大架构师每日一题2 小时前
Redis 8.10.0 正式发布:紧凑哈希、批量导入、备份恢复、流与时序能力全面升级
数据库·redis·哈希算法