我应该避免使用Web应用程序的数据文件并改用DB吗?
我设计了一个旨在管理餐厅网站菜单的网络应用程序。应用程序允许餐厅经理对菜单进行更改,而不必每次都与网页设计师(我)联系。在设计过程中,我最初使用数据文件来存储菜单数据。理由是因为项目的最初推动力使我更容易对网站内容进行更改,并且我希望能够在必要时直接编辑数据。我应该避免使用Web应用程序的数据文件并改用DB吗?
现在项目已经发展成为一个完整的Web应用程序,我想知道是否应该放弃数据文件并使用数据库。因为这是用于餐馆菜单的,所以数据量非常小,不会定期进行更改,即使如此,更改也很小。通过转换到数据库我会受益吗?有明显的好处吗?
PHP提供了一些不错的功能,将数据存储在文件中,用json_encode()
和json_decode()
,var_export()
吧,保存变量本地PHP语法,或fputcsv()
和fgetcsv()
以CSV格式的处理文件。
在较小的项目中,我经常将数据保存到文件中,但我绝不会使用我自己的函数来处理刚刚提到的那些函数。他们非常方便,一旦你知道他们如何行动,你可以在任何地方使用它们,而不必重新发明车轮。
现在,当您处理大量数据或者可以进行并发修改时,数据库是绝对必需的。 flock()
可能会缓解并发修改的事情一点点,但经过一定的规模后,使用数据库不能避免。
数据库必须提供的另一个优点是它们使用SQL语言,该语言旨在处理数据。因此,你可以用几条简单的线条来打出一些很好的统计数据(等等),而如果你想用PHP来处理大量数据,它可能会很快变得混乱。
结论:然而,在您的具体情况下,我不会建议切换到数据库。正如你所说,没有太多数据,它不会被频繁写入,因此我认为设置数据库和将所有代码更改为等效的SQL语句的麻烦是不值得的。你的努力可能更好地花在其他地方。
这是我的一般结论。关于并发访问的问题:因为主网页访问这些相同的文件(只读)来显示菜单,如果某人在加载网页的同时有人保存了更改,这可能会导致一些数据完整性问题? – 2014-08-29 06:33:54
@LeeBlake如果主页只读取文件,我会说最糟糕的是,如果访问者非常不幸,菜单可能是空的。我个人并不担心。这是一个很小的机会。 – ljacqu 2014-08-29 06:35:39
阅读[this](http://stackoverflow.com/questions/2356851/database-vs-flat-files) – BlitZ 2014-08-29 06:26:12