网页建设技术和网站策划书,铁岭网站建设移动网站,成都广告公司排名,网站建设属于什么专业※食用指南#xff1a;文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记#xff0c;笔记整理比较粗糙#xff0c;主要目的自存为主#xff0c;记录完整的学习过程。#xff08;图片超级多#xff0c;慎看#xff01;#xff09;
【中字】SQL进阶教程 | 史上最易懂S…※食用指南文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记笔记整理比较粗糙主要目的自存为主记录完整的学习过程。图片超级多慎看
【中字】SQL进阶教程 | 史上最易懂SQL教程10小时零基础成长SQL大师https://www.bilibili.com/video/BV1UE41147KC/?spm_id_from333.1007.0.0vd_sourceb287f1f4a1fa54cc438e31a0f87ef4e2 目录
第十二章设计数据库——PART3
19、PROJECT1FLIGHT BOOKING SYSTEM——项目一航班订票系统
20、PROJECT1CONCEPTUAL MODEL——项目一概念模型
21、PROJECT1LOGICAL MODEL——项目一逻辑模型
22、PROJECT2VIDEO RENTAL APPLICATION——项目二视频租赁应用
23、PROJECT2——CONCEPTUAL MODEL——项目二概念模型
24、PROJECT2——LOGICAL MODEL——项目二逻辑模型 第十二章设计数据库——PART3 19、PROJECT1FLIGHT BOOKING SYSTEM——项目一航班订票系统 为航班订票系统设计一个数据库
在附件PDF中可以看到这个系统要生成的机票的一个示例
根据这些信息为系统设计一个数据库 20、PROJECT1CONCEPTUAL MODEL——项目一概念模型 自己做的 Mosh答案
先在实体之间建立一种关系在逻辑模型的时候再明细它们的关系都先设定为多对多
先不用管标准化问题随时可以回来修改先把基础建对
围绕四个实体建立概念模型 21、PROJECT1LOGICAL MODEL——项目一逻辑模型
优化元素建立逻辑模型 ①实体之间的关系
乘客机票一对多
机票航班一对多
机场航班多对多 修改箭头即可 ②添加属性
Flight number有数字和字母使用字符串
飞行时间最好用分钟来计时更加直观——飞行分钟 ③新增Ariline
航空公司航班一对多
舱位机票一对多 两个问题
①机场实体
这种设计可能导致重复的城市、州、国家是否应该把属性拎出来
减少重复但是数据会变得很零碎也总需要把三四张表连接到一起才能查到某个城市的机场这样的连接会影响应用程序的性能 对设计作“去”标准化处理将经常连接到一起的表合并成一张表
就不必总是把表连接到一起
结合项目世界也不会有几百万个机场也不是每个城市也有机场数量有限这里出现的重复不算很大问题 只添加城市和州属性就可以 ②机场航班多对多关系
关系型数据库中没有多对多关系只有一对一、一对多
出现多对多的关系要分解成2组一对多关系
通过一张链接表实现一张代表两个实体或者两张表之间关系的表
但链接表的问题是允许一个航班与两个以上的机场有联系。因为链接表可以有多对多的关系不建议使用 添加两个属性起飞机场、到达机场 当我们基于这个逻辑模型建构一个实体模型时
需要为DepartureAirportIdinterger、ArrivalAirportIdinterger这两列添加外键 以上就是基于我们对这个问题的了解所做的逻辑模型不要把它当作这类问题的最好办法或者唯一办法每种解决方案都是有利有弊
随着越了解这个问题这个业务领域模型也会变 实体模型自行建立 22、PROJECT2VIDEO RENTAL APPLICATION——项目二视频租赁应用 应用程序将在一个视频出租商店使用Vidly
使用附件PDF阅读要求为应用程序设计数据模型 ①不同级别的权限给不同的用户
商店经理添加/更新/删除电影列表设置每部电影的库存、每日租金
收银员对电影清单有一个只读的视图管理顾客名单、租的电影 ②业务方面
结账顾客要一部或者多部电影搜索电话号码查询顾客ID
第一次来的需要在系统中登记全名、电子邮件、电话号码扫描所要电影记录在系统中
每部电影有个10位的条形码 归还如果丢失收取电影日租金的5倍金额
收银员标记电影丢失减少库存重点在库存中的电影数量、收取顾客多少费用
其他电影收费天数*每日租金
不定期发优惠券顾客归还电影时可以带一张优惠券
顾客可能分次归还所租电影 需要能追踪
-- 热门电影
-- 优质顾客
-- 每日/每月/每年收入 23、PROJECT2——CONCEPTUAL MODEL——项目二概念模型 自己做的 Mosh答案 24、PROJECT2——LOGICAL MODEL——项目二逻辑模型
现在需要考虑存储数据
①权限问题
收银员和店长无法拥有一致的权限集每个用户的权限集不同必须确保我们的用户拥有一致的权限
以上模型对应用来说要求了过高的细节度更使用与需要完全控制到每个用户权限的应用程序
引入新实体——root
在下次注册新用户时只需要把用户添加到特定组或身份里用户就能自动获取身份的所有权限用户就能够拥有一致的权限集 ②管理权限
对电影的管理权限有点太细化不需要那样的控制度Permissions这个实体没有必要只需要知道用户身份
在应用程序中写一个简单的IF语句如果用户是店长将开启所有功能如果是收银员或许需要隐藏或禁用某些功能 例如在旅行需要一个房间住一晚预算100元假设一个人来只需要一间简单的房间一张单人床
刚好现在就有一间房间有大床、阳台、浴缸、wifi、游戏机但一晚要500元
你不会为那些不需要的功能多花400元 回到项目所有未来可能会用上的附加功能总有人要先为它买单——公司
不要过度设计不要因为认为必要的功能浪费别人的钱也是管理复杂性的问题
复杂的设计会一致贯穿于这个应用程序每次需要修复一个bug或引入一个新功能时都必须处理这个应用程序设计里不需要的复杂性 ③实体关系
租赁优惠券一次租赁最多可以用一张优惠券一张优惠券可以用于不同租赁优惠券是可空类型
租赁电影每次租赁只能租一部电影一部电影可以被租很多次
租赁顾客同上 ————TBC