在简单的Web文档系统(或基本CMS)上使用RDBMS与平面文件有什么好处?

该项目

我被要求开展一个有趣的项目 – 相当于基本的Web CMS – 使用HTML / CSS / jQuery和PHP。 但是,一个要求是不存在容纳数据的数据库(它们需要文档/页面的平面文件 – 最好是JSON格式)。

从非常基本的意义上讲,它将用于通过非“技术”界面生成HTML页面。 每个安装只有大约20页,但有些可能会达到100页。必须非常容易地放到支持PHP的服务器上运行,只需要很少的设置。

什么在那里

有大量的CMS选项和相当多的平面文件版本。 但OSS或其他现有CMS不是一种选择。 他们需要一个简单的礼仪系统。

初步想法

它是如此扁平的文件…但我真的想得到一些关于缺点的反馈,如果值得努力试图说服他们使用类似MySQL的东西(SQLite或CouchDB都没有,因为没有服务器可以配置为在当前时间运行它们)。

当然文档文件非常简单,但我们也在谈论每个安装1个或2个管理员的登录信息,一些列表,以及配置/设置(也可以很容易地存储在有保护的文件中)。

困境

如果在这样一个简单的项目中使用MySQL而不是JOSN格式的文件和一些数组有好处 – 超出我自己的预设概念:) – 我一定会争辩它们。

但老实说,我看不出任何超过他们没有数据库系统的需要。

我很感激你的见解和意见。

如果你不能引用关系表设计的特定需求,那么你对平面文件很好。 按指定构建。 你可以引用特定需求的那一刻,让他们知道; 升级并不是那么难,如果你的感知是及时的(也就是说,如果你不是必须规范化应该早先集成的数据)。

很遗憾你不能使用CouchDB ,这似乎是它的完美应用。 请记住,使用平面文件会严重限制您的体系结构,尤其是可伸缩性。

您的CMS应用程序的最佳案例场景是什么? 它是成功的,人们想要更多地使用它? 如果您使用的是平面文件,那么服务和改进您的系统会更加困难(例如,使其更加强大,并为将来的版本添加新function),性能将无法很好地扩展。 因此,在这种情况下,“成功”至多是短暂的,因为成功转化为越来越多的工作,以便在function集和性能方面获得越来越少的收益。

然后,如果CSM设计正确,则在平面文件到RDMS之间切换应该像使用不同的数据访问文件一样简单。

这将安装在任何共享主机站点上。 为了使其在某种程度上安全地工作,需要正确设置suEXEC之类的机制,因为Web服务器需要对各种目录具有写权限。

对于通过JSON和jQuery提供的简单网站而言,最酷的是该网站不需要在每次点击时加载。 只是相关数据会发生变化。 然后,您可以在位置栏中使用哈希来跟踪您的位置(例如http:// localhost / #about )

问题是,如果他们正在编辑原始JSON文件,他们可以很快搞乱它。 我认为您的管理工具必须根据输入生成JSON文件,以便您可以确保没有任何中断。 管理工具将更加需要网站(尽管动态网站的情况并非如此)

CMS的预测数据大小是多少?

使用RDMS的一个重要原因是可以快速,特定地访问大量数据。 数据格式可能不大,但如果有大量数据,那么从长远来看,RDMS可能会更好。

然后,如果CSM设计正确,则在平面文件到RDMS之间切换应该像使用不同的数据访问文件一样简单。

虽然RDBMS对于非常大的CMS可能是必需的,但是小的CMS可以非常好地运行平面文件。 我认为,在没有实际需要的情况下,将RDBMS投入到混合中,很多CMS产品在这方面都会出现问题。

但是,如果您使用的是平面文件,则存在其他人突出显示的安全问题。 我遇到的另一个问题是托管提供程序使用php.ini中的disable_functions指令来禁用文件I / O函数,如fopen()和朋友。 如果您在自己控制的盒子上托管CMS,则不会出现此问题,但如果您使用的是第三方提供商,请先检查。

作为原始海报,我没有登录,所以到目前为止,我正在回答答案(对不起,如果这是不好的forms)。

  • 可能存在共享主机上的情况。
  • 虽然JSON文件在技术上可以编辑,但情况并非如此。 管理界面足够健壮,可以完成所有页面的创建/编辑
  • 每次安装的大小相对较小 – 1 – 2个管理员,10-100页。 一些常见项目列表可能会运行更长时间(例如,副本片段)。
  • 安全性将是一个大问题 – 有关此问题的任何其他选项建议具体吗?

那么,他们对任何数据库系统不信任是不是有问题? 问题不在于技术问题吗? 也许他们害怕数据库,因为它听起来很复杂。 在这种情况下,如果你只是向他们展示一些非常简单的CMS(比如CMS变得简单,我听说它非常简单,而且学习过程非常快),如果他们看到一切都很简单,那么他们可能就是关心背后的东西,如果它是一个数据库或其他什么!

他们可以听到诸如更好的维护,更低的维护成本,更好地移交给其他网站管理员而不是专有解决方案(他们不依赖于您)等论点。