假设我有两个或更多不同的对象,每个对象都由DB中的表表示。称这些文章,书籍等。现在说我想为每个对象添加一个评估功能。注释在每个对象中的行为都完全相同,所以理想情况下我想在一个表中表示它们。
但是,我不知道这样做的好方法。我知道如何做到这一点的方式是:
每次添加新对象时,上述任何一种方法都需要更新模型/ db。还有更好的方法吗?
答案 0 :(得分:0)
我个人认为你的第一个选择是最好的,但是我会把这个选项用于样式点:
评论对他们有自然的结构。您有第一条评论,也许评论评论。这真的是评论之树。
如果您为每个指向注释树根的对象添加了一个字段,该怎么办?然后你可以说,“检索文章123的评论树。”,你可以取根,然后根据一个评论表构建树。
注意:我仍然最喜欢选项1。 =)
答案 1 :(得分:0)
还有另一种策略:从一个公用表中继承 1 不同类型的“可评论”对象,然后将注释连接到该表:
所有3种策略都是有效的,并且各有利弊:
comment_type
- 它可以推断来自哪个字段是非NULL。1 Aka。类别,子类化,泛化层次结构...有关继承的更多信息,请查看ERwin Methods Guide的“子类型关系”部分。