选择更好的选项1)使用文件或2)数据直接到数据库

时间:2012-01-16 17:40:31

标签: php mysql database

好吧,我正在学习网络开发,目前正在研究PHPmySQL,我只是对数据库概念的新见解。说实话,我不确定何时创建表或何时创建数据库。我需要一些建议和帮助。

好的,我有这些怀疑,请清楚我这个。我不太了解这一点,但php文件概念为我们提供了多少安全性。使用php的文件概念有什么害处吗?

好吧,让我告诉你这些我想将用户输入的一些数据保存到服务器上的文本文件中,数据可能像某些消息或类似他的信息,我想将数据保存在文件中然后将其目录路径保存在数据库中。检索数据时,只需从数据库中获取文件路径,然后从文本文件中检索它。这样做是好还是坏?或者我是否需要将用户数据保存在数据库中?

同样地,我也想保存数据库中图像或图片的路径,然后将路径放在<img>标签中。我没有人在这里帮我解决这个问题。所以请帮助我对此,非常感谢任何帮助。

请告诉我我应该选择的方式是什么?

4 个答案:

答案 0 :(得分:2)

对于图像和其他文件绑定资源,将图像存储在文件系统及其在数据库中的路径是有意义的。毕竟,文件系统非常适合存储文件。你可以 store the file as a binary field in the database,所以这当然是一种选择。无论哪种方式都有利弊。就个人而言,我更喜欢将文件保存在文件系统中。

我不确定你要去哪里:

  

数据可能像某些消息或类似他的信息,我想将数据保存在文件中,然后将其目录路径保存在数据库中

为什么这些数据需要存在于文件中?或者您只是不确定如何将其存储在数据库中?如果数据是结构化的并且一致地组织,那么我无法想象不将其保留在关系数据库中的理由。 (即使它没有结构化,我也可能still look into a database在文件系统上进行此类事情。)

图像和其他非关系资源通常是文件绑定的,因此请将它们保存在文件中。但是,如果您只是将文本存储在文本文件中,除了您以前所做的其他原因之外,我建议您使用数据库。

答案 1 :(得分:1)

PHP提供的安全性与底层文件系统一样多。但是将文件放在磁盘上并在db中保存路径是传统的方法。

答案 2 :(得分:0)

数据库中的文件通常不是最佳解决方案。但这主要是因为人们谈论存储二进制文件(例如图像,zip文件等等),就数据库而言,这将是一个不透明的blob。

对于文本文件,特别是小文件,它仍然至少可以被DB使用,即使只通过SUBSTR()类型匹配/搜索,所以这是一种情况,在DB中存储可以使感。

答案 3 :(得分:0)

这里有一个很好的经验法则:

  • 如果是某种东西,则DB“理解”(例如文本),将其存储在其中 数据库 - 您以后可能需要全文索引,搜索,文本转换等等。
  • 如果不是(例如图片),请将其存储在文件

作为所有经验法则,这可能适合您的食指,也可能不适合您的食指