设计模式通常与面向对象的设计有关.
是否有用于创建和编程关系数据库的设计模式?
许多问题肯定必须有可重复使用的解决方案.
示例包括表格设计,存储过程,触发器等模式......
是否有类似于martinfowler.com的此类模式的在线存储库?
模式可以解决的问题示例:
存储分层数据(例如,具有类型的单个表与具有1:1密钥和差异的多个表...)
存储具有可变结构的数据(例如,通用列vs xml vs分隔列...)
非规范化数据(如何以最小的影响做到这一点......等等)
Michael Brow.. 143
Martin Fowler的签名系列中有一本名为Refactoring Databases的书.这提供了重构数据库的技术列表.我不能说我已经听过这么多的数据库模式列表.
我还强烈推荐David C. Hay的数据模型模式和后续的元数据地图,它建立在第一个并且更加雄心勃勃和有趣.仅前言就是有启发性的.
Len Silverston的数据模型资源手册系列第1卷包含普遍适用的数据模型(员工,账户,运输,购买等),第2卷包含行业特定的数据模型(会计,医疗保健等),第3卷提供数据模型模式.
最后,虽然本书表面上是关于UML和对象建模的,但是Peter Coad的UML中的颜色建模提供了一个"原型"驱动的实体建模过程,其前提是任何对象/数据模型都有4个核心原型.
Martin Fowler的签名系列中有一本名为Refactoring Databases的书.这提供了重构数据库的技术列表.我不能说我已经听过这么多的数据库模式列表.
我还强烈推荐David C. Hay的数据模型模式和后续的元数据地图,它建立在第一个并且更加雄心勃勃和有趣.仅前言就是有启发性的.
Len Silverston的数据模型资源手册系列第1卷包含普遍适用的数据模型(员工,账户,运输,购买等),第2卷包含行业特定的数据模型(会计,医疗保健等),第3卷提供数据模型模式.
最后,虽然本书表面上是关于UML和对象建模的,但是Peter Coad的UML中的颜色建模提供了一个"原型"驱动的实体建模过程,其前提是任何对象/数据模型都有4个核心原型.
这是一个已经开发了数百个免费数据库模式的绅士的链接.
http://www.databaseanswers.org/data_models/
也许如果您必须快速构建数据库,这将为您提供给定模式中的表和关系的起点.请记住,您可能需要修改此起点.我发现它非常有用.
其次,SQL Server Magazine偶尔会出现一个名为"The Data Modeler"的专栏,它非常具有教育意义,通常包含给定系统的完整模式.
设计模式不是简单的可重用解决方案.
根据定义,设计模式是可重用的.它们是您在其他好的解决方案中检测到的模式.
一种模式并非简单可重复使用.但是,您可以按照模式实现羽绒设计.
关系设计模式包括以下内容:
使用外键的一对多关系(主 - 细节,父 - 子)关系.
与桥表的多对多关系.
在FK列中使用NULL管理的可选一对一关系.
Star-Schema:Dimension and Fact,OLAP设计.
完全标准化的OLTP设计.
维度中的多个索引搜索列.
"查找表",包含一个或多个应用程序使用的PK,描述和代码值.为什么有代码?我不知道,但是当它们必须被使用时,这是一种管理代码的方法.
单表.[有人称之为反模式; 这是一种模式,有时它很糟糕,有时它很好.]这是一张包含许多违反第二和第三范式的预先加入的东西的表格.
数组表.这是一个通过在列中包含数组或值序列来违反第一范式的表.
混合使用数据库.这是一个针对事务处理进行规范化的数据库,但有许多额外的索引用于报告和分析.这是一种反模式 - 不要这样做.无论如何,人们都会这样做,所以它仍然是一种模式.
大多数设计数据库的人都可以轻易地打破六个"这是另一个"; 这些是他们定期使用的设计模式.
这不包括使用和管理的行政和运营模式.
看看这个博客 - 数据库程序员.
他描述了一些数据库模式.
Joe Celko的书很适合这类东西,特别是"SQL for Smarties".他对常见问题有一些创新的解决方案,其中大部分都是可重复使用的设计模式.
http://www.celko.com/books.htm
AskTom可能是有关Oracle DB最佳实践的最有用的资源.(我通常只输入"asktom"作为特定主题的谷歌查询的第一个单词)
我认为用关系数据库谈论设计模式并不合适.关系数据库已经是对问题的"设计模式"的应用(问题是"如何在保持其完整性的同时表示,存储和处理数据",并且设计是关系模型).其他approches(通常被认为是过时的)是Navigational和Hierarchical模型(我不知道其他许多其他模型).
话虽如此,您可能会将"数据仓库"视为数据库设计中有些独立的"模式"或方法.特别是,您可能有兴趣阅读有关Star模式的信息.