【发布时间】:2011-07-24 22:00:48
【问题描述】:
我确信我不是第一个提出这个问题的人,但我找不到一个好的答案,我承认数据库设计不是我的主要优势。
假设我有一个产品,这个产品可以有子类型,产品 A、产品 B、产品 C 和产品 D。超类型产品将具有一些公共属性,而子类型将具有特定于这些子类型的属性。非常标准的超类型/子类型设计。
现在我有一个用户实体。一个产品可以有很多用户,一个用户可以有很多产品。所以理想情况下,我想要一个关于这些连接的连接表,其中包含一些关于该连接的特定属性。我遇到的问题是我不想做一个产品用户连接表,但更像是一个用户和产品子类型的连接,所以一个产品A用户、产品B用户、产品C用户、产品D用户。原因是这两个实体的联接具有特定于该产品和用户联接的自己的属性。
这个设计有意义吗?或者有没有更好的方法来处理这种行为。我喜欢我的产品的标准超类型/子类型,但是当我需要将它们与其他实体一起加入时,我不确定如何处理。
【问题讨论】:
标签: database-design