有谁知道论文/书籍等.那个文件模式的数据库?例如,一个常见的经验法则是每个表都应该有一个主键,并且键应该没有信息内容.所以我想知道是否有人写过关于设计关系数据库的设计模式的书或发表论文?
@Gaius,
这是数据库设计师需要权衡的问题 - 数据库结构的可能稳定性是什么?鉴于足够长的时间范围,没有什么是稳定的.或者说反过来,只要有足够长的视野,一切都会发生变化.代理键(理论上)永远不应该改变它的含义,因为它从来没有意义.
我想在那个特定的设计场景中要考虑的另一件事是谁会看到主键?如果主键是最终用户实际需要引用的东西,那么将它变成可以理解的东西是有意义的.但我想不出最终用户需要看到主键的许多情况; 通常存在主键以允许DB引擎加速某些操作.
我最初想到的问题是找到数据库设计的设计模式,这些设计模式由比我更有经验的数据库设计者编写,以便有希望避免一些容易避免的错误.如果有人编写过数据库设计反模式,那将会很有趣.
具体来说,关于键:我强烈不同意键必须没有意义的奇怪想法.一般来说,我认为数据库是事实的集合; 一旦你开始添加任意数字(如生成的密钥)和其他无关信息,它应该是一个警告标志.我推荐Joe Celko关于键的更多内容.
更一般的说明:
针对不同企业的模式设计/数据模型的建议:David C. Hay:数据模型模式:思想惯例相当古老,但有一个原因,它仍然在印刷
http://www.dorsethouse.com/books/dmp. HTML
也许不是很像模式,但仍然非常好:Stephane Faroult,Peter Robson:SQL的艺术 http://oreilly.com/catalog/9780596008949/
另一个我可以推荐的:Vadim Tropashko:SQL设计模式 - SQL编程专家指南 http://www.rampant-books.com/book_2006_1_sql_coding_styles.htm
关于数据建模的系统教科书:Graeme Simsion和Graham Witt,"数据建模基础" http://www.elsevierdirect.com/product.jsp?isbn=9780126445510
也许你真的在寻找一个"风格指南"?我就是这样:Joe Celko:SQL编程风格 http://www.elsevierdirect.com/product.jsp?isbn=9780120887972
EF Codd和CJ Date的书是最明显的答案。我没有读过这本书,但我对作者很熟悉,它可能相当不错。
Lexx de Haan和Toon Koppelaars 为数据库专业人员提供的应用数学。