Php 将网站设置保存在数据库vs文件(.json)中
我正在开发一个网站,对于网站语言、广告布局、电子邮件的一些模板字符串消息等设置和首选项,我决定使用Json文件,而不是保存到数据库。现在有什么理由不应该使用json文件并坚持使用数据库吗 另外,我正在使用Zend Framework 2,我肯定会在json文件上设置正确的权限(可能是644) PSS。这不是一个复制品。我认为我不会在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文件 答
是的,我知道我会保存到一个文件中,但我想说得更具体一些。我将保存到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,用于记录日志,因此根据这些变量查询数据库要比搜索数组容易得多。