sql是一门声明式编程语言,像Lisp、Haskell或者XSLT,sql中使用集合作为根本的数据结构。
第一部分:逻辑型数据库设计反模式:
1.乱穿马路
乱穿马路指的是:在多对一的数据库设计中,将多的那个列类型设置为VARCHAR,将其中的多个字段用逗号分隔。这样设计的数据库在执行查询和更新的时候都会变的非常困难,而且会限制列中字段的数目。
这种问题的解决方案是创建一张交叉表。
交叉表的设计中,可以以另一张表中的合法数据为标准,使用外键约束来验证数据,还可以使用SQL的数据类型来约束条目。例如,设定字段中的条目应该是INTEGER或者DATE类型的,就可以确信所有条目都是合法的数据。