Content
25 Lessons • 0 Quizzes • 0 Challenges
简介
- 1
入门
- 2
课程结构
- 3
约定
- 4
示例数据库
逻辑反模式 - 乱穿马路
- 1
概要:乱穿马路
- 2
反模式:格式化逗号分隔的列表
- 3
解决方案:创建一个交集表
逻辑反模式 - 实体-属性-值
- 1
概要:实体-属性-值
- 2
反模式:使用通用属性表
- 3
支持数据完整性
- 4
解决方案:使用继承来建模子类型
- 5
次优解
逻辑反模式 - 天真树
- 1
概要:朴素树
- 2
反模式:总是依赖父节点
- 3
使用邻接表维护一棵树
- 4
解决方案:使用替代的树形模型
- 5
路径枚举
- 6
嵌套集
- 7
闭包表
- 8
不同树结构实现方式的比较
逻辑反模式 - 多态关联
- 1
概要:多态关联
- 2
反模式:使用具有双重用途的外键
- 3
解决方案 1:简化关系
- 4
解决方案2:创建一个通用的父表
逻辑反模式 - ID 必需
- 1
概要:需要ID
- 2
反模式:一刀切
- 3
解决方案:量身定制
逻辑反模式 - 多列属性
- 1
概要:多列属性
- 2
反模式:创建多个列
- 3
解决方案:创建依赖表
逻辑反模式 - 无钥匙进入
- 1
概要:无钥匙进入
- 2
反模式:忽略约束条件
- 3
解决方案:声明约束
逻辑反模式 - 元数据兔子
- 1
概要:元数据兔子
- 2
反模式:复制表或列
- 3
解决方案:分区与归一化
物理反模式 - 四舍五入误差
- 1
概要:舍入误差
- 2
反模式:使用 FLOAT 数据类型
- 3
解决方案:使用 NUMERIC 数据类型
物理反模式 - 31种风味
- 1
概要:31种口味
- 2
反模式:在列定义中指定值
- 3
解决方案:在数据中指定值
物理反模式 - 幽灵文件
- 1
概要:幽灵文件
- 2
反模式:假设你必须使用文件
- 3
解决方案:根据需要使用 BLOB 数据类型
物理反模式 - 索引霰弹枪
- 1
概要:索引霰弹枪
- 2
反模式:没有计划地使用索引
- 3
解决方案:优化您的索引
查询反模式——对未知的恐惧
- 1
概要:对未知的恐惧
- 2
反模式:将 null 视为普通值,或反之
- 3
解决方案:使用 NULL 作为唯一值
查询反模式 - 模糊的分组
- 1
概要:模糊分组
- 2
反模式:引用未分组的列
- 3
解决方案:明确地使用列
查询反模式 - 随机选择
- 1
概要:随机选择
- 2
反模式:随机排序数据
- 3
解决方案:无特定顺序
查询反模式 - 伪搜索引擎
- 1
概要:简易搜索引擎
- 2
反模式:模式匹配谓词
- 3
解决方案:选择合适的工具来完成任务
- 4
使文本可搜索的替代方案
查询反模式 - 面条式查询
- 1
概要:面条式查询
- 2
反模式:试图一步解决复杂问题
- 3
解决方案:分治法
查询反模式 - 隐式列
- 1
概要:隐式列
- 2
反模式:一条让你迷失的捷径
- 3
解决方案:明确命名列
应用开发反模式 - 易读的密码
- 1
概要:可读密码
- 2
反模式:以明文形式存储密码
- 3
解决方案:存储密码的加盐哈希值
- 4
保护数据库密码的其他方法
应用开发反模式 - SQL注入
- 1
概要:SQL注入
- 2
反模式:执行未经验证的输入作为代码
- 3
治愈的追寻
- 4
解决方案:绝不信任任何人
应用开发反模式——伪键整洁控
- 1
概要:伪键整洁控
- 2
反模式:填补角落
- 3
解决方案:严格遵守引用规范
应用开发反模式 - 视而不见
- 1
概要:视而不见
- 2
反模式:视而不见
- 3
解决方案:优雅地从错误中恢复
应用开发反模式——外交豁免
- 1
概要:外交豁免
- 2
反模式:将SQL视为次要语言
- 3
解决方案:建立包容性的质量文化
应用开发反模式——魔法 Bean
- 1
概要:魔法豆
- 2
反模式:模型是活跃记录
- 3
解决方案:模型具有活跃记录
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User