首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关系数据库设计模式?

关系数据库设计模式?
EN

Stack Overflow用户
提问于 2008-09-28 11:29:56
回答 6查看 126.2K关注 0票数 293

设计模式通常与面向对象的设计有关。

有用于创建和编程关系数据库设计模式 吗?

许多问题肯定有可重用的解决方案。

示例包括表设计模式、存储过程、触发器等。

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

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

  • 存储分层数据(例如具有类型的单表与具有1:1键的多个表和差异.)
  • 用可变结构存储数据(例如,泛型列与xml和分隔列.)
  • 去有机化数据(如何做到影响最小,等等)
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-09-28 11:44:48

马丁·福勒的签名系列中有一本书叫做重构数据库。它提供了重构数据库的技术列表。我不能说我听说过这么多数据库模式的列表。

我还强烈推荐大卫·C·海伊(DavidC.Hay)的数据模型模式和后续元数据地图,后者建立在第一个基础之上,而且更加雄心勃勃,也更耐人寻味。仅序言本身就具有启发性。

Len Silverston的“数据模型资源手册系列”( 第1卷 )也是寻找一些预先准备好的数据库模型的好地方,它包含普遍适用的数据模型(雇员、帐户、运输、采购等),第2卷包含行业特定的数据模型(会计、医疗保健等),第3卷提供数据模型模式。

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

票数 167
EN

Stack Overflow用户

发布于 2008-09-28 13:36:52

设计模式不是微不足道的可重用解决方案。

根据定义,设计模式是可重用的。它们是你在其他好的解决方案中检测到的模式。

模式不是微不足道的可重用的。不过,您可以按照模式实现您的向下设计。

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

  1. 一对多的关系(主细节,父-子)关系使用外键。
  2. 多到多的关系与桥接器表。
  3. 使用FK列中的NULL管理的一对一关系可选。
  4. 星型模式:维度和事实,OLAP设计。
  5. 完全规范化的OLTP设计。
  6. 维度中的多个索引搜索列。
  7. 包含一个或多个应用程序使用的PK、描述和代码值的“查找表”。为什么有密码?我不知道,但当它们被使用时,这是一种管理代码的方法。
  8. 单桌。有人称这为反模式,这是一种模式,有时是坏的,有时是好的。这是一个表格,有很多预先连接的东西,违反了第二和第三范式。
  9. 数组表这是一个违反第一个普通形式的表,它在列中有一个数组或值序列。
  10. 混合使用数据库。这是一个用于事务处理的规范化数据库,但有许多用于报告和分析的额外索引。这是一种反模式--别这样。不管怎样,人们都这么做,所以这仍然是一种模式。

大多数设计数据库的人可以轻易地说出“这是另一个”;这些是他们经常使用的设计模式。

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

票数 49
EN

Stack Overflow用户

发布于 2008-10-10 09:19:17

AskTom可能是关于Oracle的最佳实践的唯一最有用的资源。(我通常只键入"asktom“作为google查询中关于某个特定主题的第一个单词)

我不认为用关系数据库来讨论设计模式是非常合适的。关系数据库已经是对问题的“设计模式”的应用(问题是“如何在保持数据完整性的同时表示、存储和处理数据”,而设计是关系模型)。其他的方法(通常被认为是过时的)是导航和分层模型(而且我没有其他的存在)。

尽管如此,在数据库设计中,您可能会考虑将“数据仓库”作为一种有点独立的“模式”或方法。特别是,您可能对阅读有关星型模式的内容感兴趣。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/145689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档