【发布时间】:2010-12-06 18:41:16
【问题描述】:
我的问题是关于关系数据库系统中的继承建模。我有规范的数据模型,其中我有一些与产品定价相关的字段从产品表中继承某些属性,我想在 MySQL 关系数据库中对这种继承进行建模,所以,
“我们如何在关系数据库中进行继承建模?”
谢谢。
【问题讨论】:
标签: mysql database inheritance data-modeling class-table-inheritance
我的问题是关于关系数据库系统中的继承建模。我有规范的数据模型,其中我有一些与产品定价相关的字段从产品表中继承某些属性,我想在 MySQL 关系数据库中对这种继承进行建模,所以,
“我们如何在关系数据库中进行继承建模?”
谢谢。
【问题讨论】:
标签: mysql database inheritance data-modeling class-table-inheritance
Martin Fowler 在他的《企业应用程序架构模式》一书中广泛讨论了这一点。获取这本书并查看:
网站应该会给你一些想法。您可能还想阅读inheritance mappers 上的部分。每种不同的方法都有其优点和缺点,因此请明智地选择。
【讨论】:
【讨论】:
如果你只想看一些网络文章而不是看书,你可以通过谷歌搜索找到一些好的文章:
Generalization Specialization Relational Modeling
gen-spec 模式涵盖了许多与 OOP 环境中的继承相同的基础。
如果你用谷歌搜索
Generalization Specialization Object Modeling
您将获得一批全新的文章,其中大部分都明确提到了继承。
在 info 标签下的以下标签 class-table-inheritance 中总结了一种设计技术。如果您允许奇怪地使用“扩展”一词,这允许您使用子类表来“扩展”类表。这涉及到一些工作,但这是值得的。
【讨论】:
“数据库管理中的实际问题”的第 6 章可能对您来说很有趣。
可能与所有其他章节一样,但这些章节与您的问题没有直接关系。
【讨论】:
关系数据库不处理对象(因此,继承) - 它们处理关系。您真正要问的是如何将您的对象结构映射到您的数据库 - 答案是“这取决于您的 ORM 层”。
查看Mapping Objects to Relational Databases: O/R Mapping In Detail 文章了解更多详情。如果您告诉我们您使用的是什么软件堆栈,您可能会得到更中肯的答案。
【讨论】: