【发布时间】:2011-03-26 14:40:47
【问题描述】:
我正在尝试确定何时应将“文本条目”存储在数据库中与作为静态文件存储的截止时间。这里有什么经验法则吗?文本条目最多有几个段落,并具有指向图像和表格的链接(以及指向其他文本条目的超链接)。文本输入的一些标准:
- 我正在考虑使用 DITA 作为内容格式
- 文本应该是可搜索的
- 如果文本被修改,将创建一个新版本
提前致谢,查克
【问题讨论】:
标签: ruby-on-rails content-management-system dita
我正在尝试确定何时应将“文本条目”存储在数据库中与作为静态文件存储的截止时间。这里有什么经验法则吗?文本条目最多有几个段落,并具有指向图像和表格的链接(以及指向其他文本条目的超链接)。文本输入的一些标准:
提前致谢,查克
【问题讨论】:
标签: ruby-on-rails content-management-system dita
“rails 方式”将使用数据库。
该解决方案将更具可扩展性,因此更快并且可能更易于开发(使用迁移等)。使用文件系统,您必须自己构建许多功能,这些功能已经为数据库使用而实现。
您可以创建模型(例如)文档并轻松使用现有的版本控制系统,例如 paper_trail。使用索引搜索时,您可以只拥有一个 has_many 关系,使您能够实现模型之间的依赖关系(破坏模型意味着破坏搜索索引)。
【讨论】:
您可以查看数据库提供的内容,然后问自己这些功能是否有用,而不是截断。采取隔离(ACID 中的 I):如果您担心多个人可能同时尝试编辑一个条目,那么数据库会处理得很好,而您必须自己处理文件处理锁.或原子性:您可能希望一次更新两件事(例如索引页和入口页),并且知道它们要么都成功,要么都失败。
除了 ACID 之外,数据库还可以做许多事情,例如利用多种数据类型、简化查询以及允许扩展。这是一个值得提出的问题,因为大多数数据库最终都将数据存储在磁盘上的一堆文件中。如果您自己使用文件,您最终会编写一个迷你数据库吗?
此外,如果您使用 Rails,您还可以利用它的 ActiveRecord 功能,并可以使用许多需要数据库的插件。
即使是小型单用户 Rails 应用程序,我也会使用数据库。
【讨论】: