摘要: 目标:建立主键规范反模式:每张表都有一个伪主键id 1、如果存在一个逻辑上更为自然的主键并且也满足unique约束,那么id就多余了。 2、伪主键本身确保了表的数据不会存在重复项,所以也就无法避免表中的其它数据出现重复项。 3、主键名应该便于理解,所以建议用XxxID,而不都是用ID。 4、使用组合键。解决方案: 1、用更清晰的XxxID,而不是用ID 2、拥抱自然键和组合键。如果已经有一列能确保唯一、非空的记录,就不必使用为主键。合适的时候可以使用组合键。 阅读全文
posted @ 2012-05-03 23:08 日暮乡关何处是 阅读(353) 评论(1) 推荐(0) 编辑
摘要: 这一章的“嵌套集”和“闭包表”,我赶脚着比较麻烦不实用,所以也就不细究了。目标:分层存储与查询,比如地域字典表的存储反模式:邻接表(总是依赖父节点) 邻接表维护树比较方便,但是查询很笨拙,如果要找一个节点下的所有子节点,要关联很多次,这个关联次数取决于树的深度,所以,邻接表不能用于存储比较深的树。识别反模式: 我们的书一共有几层?合理使用反模式: 如果树结构不深,可以用。解决方案: 路径枚举: 用一个path保存所有祖先的完整路径。 优点:查询方便; 缺点:1、不能保证存储的值的有效性。2、增、删时,要考虑对原位置下的子节点如何处理,比较麻烦。3、如果还要维护一个排序... 阅读全文
posted @ 2012-05-03 08:01 日暮乡关何处是 阅读(672) 评论(0) 推荐(0) 编辑