我相信我不是第一个提出这个问题的人,但我找不到一个好的答案,我承认数据库设计不是我的主要优势。数据库设计:在超类型/子类型上加入表
假设我有一个产品,并且此产品可以有子类型,产品A,产品B,产品C和产品D.超类型产品将具有一些共同属性,而子类型将具有特定于这些子类型的属性。相当标准的超类型/子类型设计。
现在我有一个用户实体。产品可以有许多用户,并且用户可以有许多产品。所以理想情况下,我想在这些连接表上加上一些关于该连接的特定属性。我遇到的问题是我不想做Product-User连接表,但更像是与User和Product子类型的连接,因此是ProductA-User,ProductB-User,ProductC-User,ProductD-User。原因是这两个实体的连接具有特定于该产品和用户连接的自己的属性。
这个设计是否有意义?还是有更好的方式来处理这种行为。我喜欢我的产品的标准超类型/子类型,但当我需要将它们与其他实体结合时,我不确定如何处理。
我看了一下你的例子,谢谢你指出了一个例子。这种情况下,与用户连接时的子类型会有不同的列。 ProductAUser和ProductBUser将具有不同的列。 – 2011-03-31 14:55:21