Database Design Best Practice (2)

标题里虽然是将Database Designbest practice 但下面内容并不仅限于design阶段的良好习惯。

1 Should binary files (such as word, pdf, image, video) be stored in database?

(1) performance. 根据[2], blob column并不是储存在datarow中,datarow中只是包含了一个指向真正数据的指针,因此,性能并不会收到影响。

(2) full text search. 如果把word, pdf等文件存放在文件系统中,有许多工具支持对这些文档进行全文搜索,但是如果放在数据库中,这种支持可能就没这么多了(利用PDF  IFilter可以对数据库里的pdf进行FTS)。

(3) 原则上讲,数据库里面存放的应该是“数据”。而wordpdf则混杂了数据和格式。

(4) 如果把binary files存放在文件系统上,而在数据库中维护这些文件的路径,那么程序中就要维护数据库中文件路径和文件系统上文件的一致性。

2 insert语句中应该要写清楚要插入的column的名字,否则当这张表的column发生变化时,这个语句就会不成立。

3 数据库设计的目标

(1) 最少的数据冗余。normalization这个过程就是用来实现这个目标的,但要注意过度normalization的问题(在这种情况下,有时候执行一个比较简单的查询就要join好几张表,sql语句比较复杂,这样就得不偿失了)因此有时候为了使数据库关系简单,应该允许redundancy的存在。这里必须达成一个compromise

(2) 占用较小的空间。

(3) 预防错误发生的措施(foreign key, unique key等)。

 

Reference

[1]Best Practices in Database Design

http://www.interaktonline.com/Support/Articles/Details/Design+Your+Database-Best+Practices+in+Database+Design.html?id_art=24&id_asc=220

[2] http://www.aspcode.net/blogs/archive/2006/09/04/2.aspx

转载于:https://www.cnblogs.com/yuquanlaobo/archive/2007/01/19/624733.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值