我的应用程序之类的电子商务列出了不同的产品/服务类型。每种产品/服务类型都有不同的属性/属性。例如,移动电话将具有不同的属性,如CDMA / GSM,而电视将具有不同的属性集,如USB / HDMI。在开始时可以使用许多产品类型,我将继续添加不同的产品/服务类型。
所以我的问题是,我是否需要为我的数据库中的每个产品/服务类型设置一个不同的表,因为每个产品/服务都有不同的属性(列),或者是否有不同但更好的方法?预计产品/服务类型的数量为50 +。
答案 0 :(得分:0)
您的案例是类/子类或类型/子类型的实例。 ER建模中的流行语是"泛化/专业化"。
以下是与您的问题相关的标签列表:
single-table-inheritance class-table-inheritance shared-primary-key
如果您阅读了这三个标签的标签wiki,那么您将获得一些关于您所概述的案例的设计的一般指示。此外,用这三个标签标记的问题包含对您有帮助的答案。
如果您想在网上进行更多研究,我推荐Martin Fowler的网页,其中概述了单表继承和类表继承。这很好地涵盖了基础知识。如果你还想深入了解,你需要查阅一本教科书。
所有这些技术都是因为关系数据模型和vanilla SQL都没有任何为建模者提供继承的机制。