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

Ruby on rails Rails CMS:静态文件还是数据库记录?,ruby-on-rails,content-management-system,dita,Ruby On Rails,Content Management System,Dita,我正试图找出“文本条目”何时应该作为静态文件存储在数据库中的界限。这里有什么经验法则吗?文本条目最多包含几个段落,并具有到图像和表格的链接(以及到其他文本条目的超链接)。文本输入的一些标准: 我正在考虑使用DITA作为内容格式 文本应该是可搜索的 如果文本被修改,将创建一个新版本 提前感谢,Chuck“rails way”将使用数据库 该解决方案将更具可扩展性,因此开发速度更快,可能更容易(使用迁移等)。使用文件系统,您必须自己构建许多功能,这些功能已经为数据库使用而实现 您可以创建一个模型(例

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

  • 我正在考虑使用DITA作为内容格式
  • 文本应该是可搜索的
  • 如果文本被修改,将创建一个新版本
  • 提前感谢,Chuck“rails way”将使用数据库

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


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

    您可以查看数据库提供的功能,并询问自己这些功能是否有用。采取隔离(I-in):如果您担心多人可能同时试图编辑一个条目,那么数据库可以处理得很好,而您必须自己处理文件中的锁。或者原子性:您可能希望同时更新两个内容(例如索引页和条目页),并且知道它们要么都成功,要么都失败

    除了ACID之外,数据库还可以做很多事情,比如利用多种数据类型,使查询更容易,并允许扩展。这是一个值得问的问题,因为大多数数据库最终都将数据存储在磁盘上的一堆文件中。如果您自己使用文件,是否会编写一个小型数据库

    此外,如果您使用的是rails,那么您也可以利用它的ActiveRecord功能,并且可以使用许多需要数据库的插件


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

    说清楚一点,如果我引用这些文本条目,我不会使用“rails方式”吗?例如,在Rails照片应用程序中,管理是通过对静态图像文件的引用来处理的(它们不是作为blob存储在数据库中的,对吗?)。使用文档模型来实现搜索、版本控制等是必须的。将照片写入光盘是很常见的,因为它们不经常更改,而且尺寸很大,所以需要同步数据库系统和文件系统。在您的情况下,(imo)将有太多的依赖于“一个”文档,并且与图像相比大小很小,因此您不需要从数据库中下载数据…对于这种输入错误,sry:将照片写入光盘是常见的,因为它们不经常更改,而且大小很大,因此,同步数据库系统和文件系统是值得的。