sql反模式读书笔记
2015-08-21 22:05
239 查看
sql是一门声明式编程语言,像Lisp、Haskell或者XSLT,sql中使用集合作为根本的数据结构。
第一部分:逻辑型数据库设计反模式:
1.乱穿马路
乱穿马路指的是:在多对一的数据库设计中,将多的那个列类型设置为VARCHAR,将其中的多个字段用逗号分隔。这样设计的数据库在执行查询和更新的时候都会变的非常困难,而且会限制列中字段的数目。
这种问题的解决方案是创建一张交叉表。
交叉表的设计中,可以以另一张表中的合法数据为标准,使用外键约束来验证数据,还可以使用SQL的数据类型来约束条目。例如,设定字段中的条目应该是INTEGER或者DATE类型的,就可以确信所有条目都是合法的数据。
第一部分:逻辑型数据库设计反模式:
1.乱穿马路
乱穿马路指的是:在多对一的数据库设计中,将多的那个列类型设置为VARCHAR,将其中的多个字段用逗号分隔。这样设计的数据库在执行查询和更新的时候都会变的非常困难,而且会限制列中字段的数目。
这种问题的解决方案是创建一张交叉表。
交叉表的设计中,可以以另一张表中的合法数据为标准,使用外键约束来验证数据,还可以使用SQL的数据类型来约束条目。例如,设定字段中的条目应该是INTEGER或者DATE类型的,就可以确信所有条目都是合法的数据。
相关文章推荐
- PostgreSQL与MySQL常用命令比较[转]
- postgresql命令行[转]
- Mysql的主从同步设置
- redis资料
- mysql性能优化
- Mysql 建表 数据类型选择
- 关闭SQLite3中的journal暂存档
- sql server 的增删改查小测试及答案(这对于初学者来说是一件难得的宝物)
- 用 mongodb + elasticsearch 实现中文检索
- SQL随着子查询结果更新多个字段
- Oracle 学习之 11g Clone 安装
- 数据库 SQLite
- redis-3.0.3配置参考
- Centos5.5 安装memcache
- Memcached
- SQL 排序
- mongoDB中的ID的生成原则
- oracle SQL高级编程
- mysql 幻读
- C#之SQLserver完整