Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将网站设置保存在数据库vs文件(.json)中_Php_Database_Json_Zend Framework2 - Fatal编程技术网

Php 将网站设置保存在数据库vs文件(.json)中

Php 将网站设置保存在数据库vs文件(.json)中,php,database,json,zend-framework2,Php,Database,Json,Zend Framework2,我正在开发一个网站,对于网站语言、广告布局、电子邮件的一些模板字符串消息等设置和首选项,我决定使用Json文件,而不是保存到数据库。现在有什么理由不应该使用json文件并坚持使用数据库吗 另外,我正在使用Zend Framework 2,我肯定会在json文件上设置正确的权限(可能是644) PSS。这不是一个复制品。我认为我不会在json文件中存储敏感数据 谢谢你,我会的 编辑: 是的,我知道我会保存到一个文件中,但我想说得更具体一些。我将保存到settings.json。一个JSON文件 答

我正在开发一个网站,对于网站语言、广告布局、电子邮件的一些模板字符串消息等设置和首选项,我决定使用Json文件,而不是保存到数据库。现在有什么理由不应该使用json文件并坚持使用数据库吗

另外,我正在使用Zend Framework 2,我肯定会在json文件上设置正确的权限(可能是644)

PSS。这不是一个复制品。我认为我不会在json文件中存储敏感数据

谢谢你,我会的

编辑:
是的,我知道我会保存到一个文件中,但我想说得更具体一些。我将保存到settings.json。一个JSON文件

答案是肯定的,有理由反对使用文件(无论格式如何)。如果它们足以切换到数据库,则由您决定

我能想到:

  • 除非将json对象保存在php缓存中,否则每次请求都会解析该文件
  • 您需要非常小心地使用权限:644将使每个人都可以读取该文件,您可能希望使用640,并且该文件由sysadmin用户和webserver组拥有
  • 基于文件的系统很难扩展和查询:如果向系统添加新服务器,则需要保持文件同步或在单独/共享的文件系统中,这会给应用程序造成瓶颈;您还失去了使用方便的数据库SQL界面搜索内容的能力

要点可以概括为:如果希望将应用程序扩展到需要扩展的规模,请使用数据库。如果你不是,那就用合适的

这在书面上是没有意义的。Json不是一种保存文件的方法——它只是一种将对象/数组写入字符串的方法。这个字符串可以存储在数据库、文件、cookie中——基本上可以存储在任何地方。我想你实际上是指“在数据库中保存网站设置vs文件”你们说得对,这有点让人困惑。我将把设置写入一个json文件。我投票支持你;)谢谢马比的回答。你列举了三个原因。对于第一个,我应该说它将被存储在会话中,如果它在会话中,它将不会被再次读取。第二个也不会是问题,因为里面没有秘密数据。但第三个是一个巨大的。除了可伸缩性,我想数据库更通用,看起来更专业,而且我在数据库设计中包括了一个设置表:D。所以结论是我将改为数据库。感谢各位未来的读者,我要指出,在会话中存储json字符串是不够的,即使存储解析的数据也会增加会话大小,并且在系统从/到磁盘加载和保存这些数据时,可能会降低性能(而不是将其保存在memcache中)。我想补充一点,我使用的是ZF2 json配置读取器。还有另一个原因我要用数据库。在表中,我包含了last_change和last_changed_by columns,用于记录日志,因此根据这些变量查询数据库要比搜索数组容易得多。