对于当前项目,我正在创建一个数据模型.有没有哪些资源可以找到一个好的数据模型的“最佳实践”?良好意味着灵活,高效,具有良好的性能,风格……一些示例问题将是“列的命名”,“应该规范化的数据”,或“应将哪些属性导出到自己的表中”.来源应该是一本书:-)
解决方法
我个人认为你应该在开始建模数据库之前阅读一本关于性能调优的书.正确的设计可以创造一个与众不同的世界.如果您不是性能调优方面的专家,那么您就没有资格设计数据库.
这些书是特定于数据库的,这里是sql Server的书.
http://www.amazon.com/Server-Performance-Tuning-Distilled-Experts/dp/1430219025/ref=sr_1_1?s=books&ie=UTF8&qid=1313603282&sr=1-1
在开始设计之前你应该阅读的另一本书是关于反模式的.总是很高兴知道你应该避免做什么.
http://www.amazon.com/SQL-Antipatterns-Programming-Pragmatic-Programmers/dp/1934356557/ref=sr_1_1?s=books&ie=UTF8&qid=1313603622&sr=1-1
不要陷入设计灵活性的陷阱.人们使用它作为一种方法来摆脱工作以正确设计和灵活的数据库几乎总是表现不佳.如果超过5%的数据库设计依赖于灵活性,我认为您没有正确建模.我必须使用的所有最差的COTS产品都是为灵活性而设计的.
任何像样的数据库书都会讨论规范化.您还可以在网上轻松找到该信息.确保实际创建FK / PK关系.
至于命名列,选择标准并坚持使用它.一致性比实际标准更重要.不要为列ID命名(请参阅sql反模式书).如果列将位于多个不同的表中,请使用相同的名称和数据类型.你要做的是因为数据类型不匹配而不必使用函数来进行连接.
永远记住,数据库可以(并且将会)在应用程序之外进行更改.数据完整性所需的任何内容都必须在数据库中,而不是应用程序代码中.更换应用程序后很久就会有数据存在.
数据库设计最重要的事情:
>彻底定义所需数据(包括正确的数据类型)和数据之间的关系(包括正确的标准化)>数据完整性>表现>安全>一致性(数据类型,命名标准等)