关系数据库设计模式?

设计模式通常与面向对象的设计有关。
是否有创建和编程关系数据库的设计模式?
许多问题肯定必须有可重用的解决方案。

示例将包括表格设计,存储过程,触发器等的模式。

是否有类似于martinfowler.com的这种模式的在线存储库?


模式可以解决的问题示例:

  • 存储分层数据(例如,具有1:1键和差异的类型与多个表的单个表...)
  • 用变量结构存储数据(例如,通用列vs xml与分隔列...)
  • 使数据非规范化(如何以最小的影响做到这一点......)

  • Martin Fowler的Signature系列中有一本书叫做Refactoring Databases。 这提供了重构数据库的技术列表。 我不能说我已经听过很多数据库模式列表。

    我还强烈推荐David C. Hay的数据模型模式和后续的元数据映射,这是基于第一种模式构建的,并且更加雄心勃勃并且更有吸引力。 仅前言是有启发性的。

    Len Silverston的数据模型资源手册系列第1卷包含通用数据模型(员工,账户,运输,采购等),第2卷包含特定于行业的数据模型(会计核算,医疗保健等),第3卷提供了数据模型模式。

    最后,虽然本书表面上涉及UML和对象建模,但Peter Coad的UML颜色建模提供了一个“原型”驱动的实体建模过程,其前提是任何对象/数据模型都有4个核心原型


    这里有一个链接到已经开发了几百个免费数据库模式的绅士。

    http://www.databaseanswers.org/data_models/

    也许如果你必须快速建立一个数据库,这将给你一个关于给定模式中的表和关系的起点。 请记住,您可能需要修改此起点。 我发现它非常有用。

    其次SQL Server杂志有一个偶尔的专栏叫做“数据建模器”,它非常具有教育意义,并且通常包含给定系统的完整模式。


    设计模式并不是可重复使用的解决方案。

    按照定义,设计模式是可重用的。 他们是您在其他良好解决方案中发现的模式。

    一个模式不是可以重复使用的。 然而,你可以按照模式实现你的羽绒设计。

    关系设计模式包括如下内容:

  • 使用外键的一对多关系(主 - 细节,父 - 子)关系。

  • 与桥表的多对多关系。

  • 在FK列中使用NULL管理可选的一对一关系。

  • 星型架构:维度和事实,OLAP设计。

  • 完全标准化的OLTP设计。

  • 维度中的多个索引搜索列。

  • 包含一个或多个应用程序使用的PK,描述和代码值的“查找表”。 为什么要有代码? 我不知道,但是当他们必须被使用时,这是一种管理代码的方式。

  • 单表。 [有人称这是一种反模式; 这是一种模式,有时很糟糕,有时候很好。]这是一张有很多预先加入的内容的表格,这些内容违反了第二种和第三种正常形式。

  • 阵列表。 这是一个通过在列中有一个数组或一系列值来违反第一范式的表。

  • 混合使用数据库。 这是一个为事务处理规范化的数据库,但有许多额外的索引用于报告和分析。 这是一种反模式 - 不要这样做。 人们无论如何都这样做,所以它仍然是一种模式。

  • 设计数据库的大多数人可以很容易地听到半打“这是另一个”。 这些是他们定期使用的设计模式。

    这不包括使用和管理的管理和操作模式。

    链接地址: http://www.djcxy.com/p/70613.html

    上一篇: Relational Database Design Patterns?

    下一篇: ERD. Modeling Question