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

Php 在简单的Web文档系统(或基本CMS)上使用RDBMS与平面文件相比,有什么真正的好处吗?,php,jquery,mysql,json,content-management-system,Php,Jquery,Mysql,Json,Content Management System,项目 我被要求做一个有趣的项目——相当于一个基本的Web CMS——它使用HTML/CSS/jQuery和PHP。然而,一个要求是,不会有一个数据库来容纳他们想要的文档/页面的平面文件数据——最好是JSON格式 从一个非常基本的意义上讲,它将被用来通过一个非常非技术性的界面生成HTML页面。每个安装只有大约20页,但少数可能会达到100页。它必须相当容易地放到一个支持PHP的服务器上运行,只需要很少的设置 外面有什么 有大量的CMS选项和相当多的平面文件版本。但OSS或其他现有CMS不是一个选项

项目

我被要求做一个有趣的项目——相当于一个基本的Web CMS——它使用HTML/CSS/jQuery和PHP。然而,一个要求是,不会有一个数据库来容纳他们想要的文档/页面的平面文件数据——最好是JSON格式

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

外面有什么

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

最初的想法

所以平面文件是。。。但是我真的很想得到一些关于缺点的反馈,如果值得尝试并说服他们使用MySQL、SQLite或CouchDB之类的工具,那么现在就没有了,因为目前没有一台服务器可以配置为运行它们

当然,文档文件非常简单,但我们还讨论了每次安装1或2名管理员的登录信息、一些列表以及配置/设置,这些配置/设置也可以轻松地存储在具有保护的文件中

困境

如果在这样一个简单的项目中使用MySQL而不是JOSN格式的文件和一些数组有好处的话——这超出了我自己预先设想的概念:-我一定会争论这些

但老实说,我看不出有什么比他们不需要数据库系统更重要的了


我非常感谢您的见解和意见。

这将安装在任何共享托管站点上。要使其在某种程度上安全运行,需要正确设置一种类似的机制,因为web服务器将需要对各种目录的写入权限。

如果您不能引用关系表设计的特定需要,那么您可以使用平面文件。按指定的方式生成。当你能举出具体需求时,让他们知道;升级并不是那么难,如果你是及时的,也就是说,如果你是;t必须规范化本应更早集成的数据。

通过JSON和jQuery提供的简单站点最酷的是,该站点不需要在每次单击时加载。只是相关数据会发生变化。然后,您可以使用位置栏中的哈希来跟踪您的位置


问题是,如果他们正在编辑原始JSON文件,他们可能会很快把它搞糟。我认为您的管理工具必须根据输入生成JSON文件,这样才能确保没有任何中断。管理工具比站点更复杂,但动态站点不总是这样吗?CMS的预测数据大小是多少

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


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

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


但是,如果您使用的是平面文件,则存在其他人强调的安全问题。我遇到的另一个问题是托管提供者使用php.ini中的指令禁用文件I/O功能,如fopen和friends。如果您将CMS托管在您控制的盒子上,您不会遇到此问题,但如果您使用的是第三方提供商,请先检查。

作为原始海报,我没有登录,因此我将以答复的形式跟进到目前为止的答复,如果这是错误的,请抱歉

在某些情况下,此选项处于启用状态 共享主机。 虽然JSON文件在技术上可以 如果要编辑,则不会出现这种情况。 管理界面将是健壮的 足以完成所有页面的创建/编辑 每次安装的大小将为 相对较小-1-2名管理员, 10-100页。一些常见的 项目可能会运行较长的代码片段 例如,复制。 安全将是一个大问题-任何 关于这方面的其他选择和建议 明确地
很遗憾您不能使用,这似乎是一个完美的应用程序。请记住,使用平面文件会严重限制您的体系结构,尤其是可伸缩性

您的CMS应用程序的最佳情况是什么?它很成功,人们想更多地使用它?如果您使用的是平面文件,则很难维护和改进您的系统,例如,使其更加健壮,并为将来的版本添加新功能,性能将无法很好地扩展。因此,在这种情况下,成功是一个巨大的挑战
t最好是短暂的,因为成功转化为越来越多的工作,在功能集和性能方面的收益越来越小。

再次强调,如果CSM设计正确,那么在平面文件到RDM之间的切换应该像使用不同的数据访问文件一样简单。

,他们对任何数据库系统都不信任,这难道没有问题吗?问题不在于他们的思维而在于技术吗?也许他们害怕数据库,因为它听起来很复杂。在这种情况下,如果你只是向他们展示一些非常简单的CMS,比如CMS Make simple,我听说它非常简单,学习过程非常快,如果他们看到一切都很简单,那么他们可能只是不在乎后面是什么,如果是数据库或其他什么


他们可以听到诸如更好的维护、更低的维护成本、比不依赖您的专有解决方案更好地移交给另一个网站管理员等论点。

太多网站这样做是因为它“很酷”。这几乎没有什么好处,尤其是在传统的内容发布网站上。但他说的不是传统的CMS…他说的是一个专有系统,它将数据保存在平面文件中。