繁体   English   中英

Ruby on Rails中的设计问题

[英]Design question in Ruby on Rails

好的,情况很简单(?)。 我说过ArticlesReviewsComments ,用户可以更新三种不同的模型。 我想知道如果我希望更新的记录(来自用户)仅对管理员可用(而不在公共视图中可用),但同时保留旧记录,直到管理员使用,那么最佳的设计方案是什么?评论他们。

首先想到的是最好是具有自我引用的联接,在用户的更新操作上创建新记录并引用旧记录,以便管理员在完成对旧记录的审阅时删除旧记录,并审阅一个旧记录。得到出版。 我认真地认为,如果有来自用户的许多更新,那么保存数据的表将在很短的时间内增长很大。 您还有其他建议吗?

非常感谢您的帮助:)

PS我正在使用Ruby on Rails框架,如果有什么不同的话。

这有点让我想起了Wordpress草案系统,并且很真诚,我认为这可能是实现它的几种方法之一。 也就是说,有一列具有post_type的列,例如[draft,published ..]。 或者,您可以单独拥有草稿模型和与Article模型同质的已发布模型。 我认为您对表太大的担忧是正确的。 因此,我认为您最好选择删除旧草稿或将它们存档在另一个表中的策略,以使它们仅占用空间,而不会浪费您的搜索时间(也请记住使用索引以提高性能)。

也许作为状态机也可以提供帮助( http://www.practicalecommerce.com/blogs/post/122-Rails-Acts-As-State-Machine-Plugin

要记住的一件事是,除非您试图创建详细的修订历史记录,否则给定文章,视图或注释的确只有两个版本,您需要保留:该项目的当前批准的公共版本,以及该项目的当前编辑版本。 因此,您可能只需要编写两个副本即可,然后将草稿版本复制到已发布的草稿中,并在批准草稿后将其删除;如果用户在批准之前进行了其他更改,则可以对其进行更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM