我有以下实体:书籍,作者和商店。
每个人都可以有评论部分。我应该将评论存储在单独的表中还是具有子类型/超类型设计?如果我使用单独的表格在技术上是错误的吗?因为无论哪种方式,它可能需要相同数量的工作,或者如果超类型层次结构针对任何子类型发生更改,则子类型设计可能需要更多工作。
答案 0 :(得分:0)
超类型和子类型攻击问题“这些事情并不完全相同,但它们也没有完全不同。”
超类型/子类型设计要求某些属性存储在超类型中,有些属性存储在子类型中。现实世界中每件事物的属性在两个表之间分开。
您如何决定如何拆分属性? 所有子类型共有的属性“向上”移动到超类型中。因此,如果你是从公司和个人开始,他们并不完全相同,因为
等等。
他们并没有完全不同,因为
等等。
两者共同的属性(合法名称,至少)将“向上”冒泡到超类型中。
但是,在您的情况下,书籍,作者和商店如何适应该分析并不清楚。很明显,它们并不完全相同。但他们完全不同吗?我想是的。
如果您正在谈论有关书籍,人物和商店的网站帖子,那就是另一回事。 answer to a similar SO question包含代码。