Rails CMS:静态文件还是数据库记录?

时间:2011-03-26 14:40:47

标签: ruby-on-rails content-management-system dita

我正在试图找出关于何时应该将“文本条目”存储在数据库中而不是作为静态文件的截止点。这里有任何经验法则吗?文本条目将包含最多几个段落,并具有图像和表格的链接(以及指向其他文本条目的超链接)。文本输入的一些标准:

  1. 我正在考虑使用DITA作为内容格式
  2. 文字应该是可搜索的
  3. 如果修改了文本,则会创建新版本
  4. 提前感谢,查克

2 个答案:

答案 0 :(得分:0)

“rails way”将使用数据库。

该解决方案将更具可扩展性,因此更快,可能更容易开发(使用迁移等)。使用文件系统,您必须自己构建许多函数,这些函数已经为数据库使用而实现。

您可以创建模型(例如)文档并轻松使用现有版本控制系统,例如paper_trail。使用索引搜索时,您可以使用has_many关系来实现模型之间的依赖关系(销毁模型意味着销毁搜索索引)。

答案 1 :(得分:0)

您可以查看数据库提供的内容,并询问自己这些功能是否有用,而不是截止。采取隔离(我在ACID中):如果您有任何担心多个人可能同时尝试编辑条目,数据库将处理好这个,而你必须自己处理锁与文件。或原子性:您可能希望一次更新两件事(例如索引页和入口页)并知道它们要么成功要么都失败。

数据库执行ACID之外的许多事情,例如利用多种数据类型,使查询更容易,以及允许扩展。这是一个值得提出的问题,因为大多数数据库最终都会将数据存储在磁盘上的一堆文件中。如果您自己使用文件,最终会写一个迷你数据库吗?

此外,如果你正在使用rails,你也要考虑使用它的ActiveRecord功能,并且可以使用许多期望数据库的插件。

即使是一个小型的单用户轨道应用程序,我也会使用数据库。