数据库设计--不要把数据库作为万能储物间

我见过各种各样的使用数据库的方式。

有在数据库里面存图片的。(Tom kyte 支持往oracle 里面放)

有将服务器启动参数放在数据库的。(尤其是某些日本人自己写的框架)

有所有CRUD操作都通过存储过程完成的。(尤其是某些.net相关的代码生成工具,大量使用ms sqlserver的存储过程)

或许他们是对的,所有都取决于你的应用需求。

但数据库并不是万能的储物空间,尤其是关系数据库,它只适合存放结构化的数据。

有些非结构化的数据,例如字段数目可变的,树状结构等数据,光是抽象成关系数据库中的表就十分复杂,更别说查询了。

另外,从大规模并发访问的角度而言,数据库本身是最难于扩展的,如果把所有的业务逻辑和所有的数据(包括配置等)都放在这个篮子里,一旦数据库的瓶颈无法解决,那就等着上帝来收你吧。

所以,数据库设计的原则是该用应用程序解决的事情,决不能让数据库帮你解决。要保证数据库尽量简单,高效。

猜你喜欢

转载自belmount.iteye.com/blog/1599478