好的情况很简单(?)。我说Articles
,Reviews
和Comments
,用户可以更新三种不同的模型。我想知道如果我希望更新的记录(来自用户)仅供管理员(而不是公共视图)使用,那么最好的设计是什么,但同时旧的保留原样直到管理员评论他们。
首先想到的是,最好有自引用连接,在用户的更新操作上创建新记录并引用旧记录,以便管理员在完成审查时查看旧记录,后者被删除,被审查的一个发表。我认真地认为,如果用户有很多更新,那么持有数据的表将在很短的时间内变大。你还有其他建议吗?
非常感谢您的帮助:)
P.S。我正在使用Ruby on Rails框架,如果它有任何不同......
答案 0 :(得分:1)
这有点让我想起Wordpress草案系统并且真诚,我认为这可能是为数不多的方法之一。也就是说,有一个post_type列,如[draft,published etc ..]。或者,您可以单独使用草稿模型,也可以使用已发布的模型,该模型是Article模型的多态。我认为你对表格变得过大的担忧是正确的。因此,我认为你最好选择一种删除旧草稿或将它们存档到另一个表格中的策略,这样它们就可以占用空间而不会弄乱你的搜索时间(同样,请记住使用索引以获得更好的性能)。 / p>
也许act-as-state-machine也可以提供帮助(http://www.practicalecommerce.com/blogs/post/122-Rails-Acts-As-State-Machine-Plugin)
答案 1 :(得分:0)
要记住的一件事是,除非您尝试创建详细的修订历史记录,否则您需要保留的给定文章,视图或评论中只有两个版本:当前已批准的公共版本项目和项目的当前编辑版本。因此,您可以只编辑两份副本,并将草稿版本复制到已发布版本并在批准后删除草稿,或者如果用户在批准之前进行其他更改,则更新草稿。