如何在关系数据库中进行继承建模?

时间:2009-10-14 17:52:52

标签: mysql database inheritance data-modeling class-table-inheritance

我的问题是关系数据库系统中的继承建模。我有规范数据模型,并且我有一些与产品定价相关的字段,从产品表继承某些属性,我想在MySQL关系数据库中建模这个继承,所以,

“我们如何在关系数据库中进行继承建模?”

感谢。

5 个答案:

答案 0 :(得分:33)

Martin Fowler在他的“企业应用程序架构模式”一书中对此进行了广泛的讨论。获取本书并查看:

  1. Single Table Inheritance
  2. Class Table Inheritance
  3. Concrete Table Inheritance
  4. 网站应该给你一些想法。您可能还想阅读inheritance mappers上的部分。每种不同的方法都有其优点和缺点,因此明智地选择。

答案 1 :(得分:9)

查看这些文章以获取一些想法:

Mapping Objects to Relational Databases

Inheritance in O/R Mapping

答案 2 :(得分:3)

关系数据库不处理对象(因此继承) - 它们处理关系。您真正要问的是如何将对象结构映射到数据库 - 答案是“它取决于您的ORM层”。

查看Mapping Objects to Relational Databases: O/R Mapping In Detail文章了解一些细节。如果你告诉我们你正在使用什么软件堆栈,你可能会得到更多的答案。

答案 3 :(得分:2)

如果您只想查看一些网页文章而不是阅读书籍,可以通过Google搜索找到一些好文章:

Generalization Specialization Relational Modeling

gen-spec模式涵盖了许多与OOP环境中继承相同的基础。

如果你谷歌

Generalization Specialization Object Modeling

你会收到一批全新的文章,其中大部分都明确提到了继承。

有一种设计技术在info标签下的以下标记中进行了总结。这允许您使用子类表来“扩展”类表,如果您允许奇怪地使用单词“extend”。有一些工作涉及,但它是值得的。

答案 4 :(得分:1)

“数据库管理中的实际问题”第6章可能是一本有趣的读物。

可能与所有其他章节一样,但这些章节与您的问题没有直接关系。