数据库是为我的 Web 应用程序存储数据的最佳选择吗?

Posted

技术标签:

【中文标题】数据库是为我的 Web 应用程序存储数据的最佳选择吗?【英文标题】:Is a database the best choice to store data for my web app? 【发布时间】:2011-06-15 06:30:54 【问题描述】:

在我创建this question 之后,我决定最好将数据存储在我自己的服务器上。数据位于包含 100-500 行和 12 列的表中。我是一名新手程序员,目前正在使用 javascriptphp 开发我的第一个 Web 应用程序,我正在寻找存储和检索这些数据的最佳解决方案。我不需要做复杂的查询,我只需要根据其中一列的内容检索每一行数据。

我正在为此考虑一个数据库,但是由于我没有使用数据库的经验,我不知道它是否是满足我需求的最佳解决方案。当我获得内容时,它实际上是 CSV 格式的,所以我不知道以这种方式将其保存在我自己的服务器上还是将其保存到数据库中是否更好。然后根据客户端请求,我将使用 PHP 转换数据并将其作为 JSON 发送。

数据库是我的 Web 应用程序的最佳解决方案吗?还是我应该坚持使用 CSV 文件? 如果数据库是最佳选择,您能否指点我一个好的教程、示例或书籍以开始使用?

提前致谢。

【问题讨论】:

mysql 有一个很好的特性,可以将 CSV 数据加载到表 LOAD DATA INFILE 'file_name' 中。文档:dev.mysql.com/doc/refman/5.1/en/load-data.html 【参考方案1】:

数据库是最好的解决方案。如果您尝试在 CSV 文件中挑选出单独的行,那么解析整个文件会产生相当大的开销,只是为了获取一些信息。另一方面,数据库在这方面的效率要高得多,而且会在很短的时间内完成。

如果您使用的是 PHP,那么最常用的数据库是 MySQL,几乎每个主机都将其作为标准配置。

Here is a nice tutorial 让您入门,但 google MySQL 和 PHP,并且网络上有大量信息供您获取信息。 PHP 和 MySQL 非常流行,所以那里有很多信息。

【讨论】:

谢谢!你知道是否可以将 MySQL 与 Visual Studio 一起使用? 我从来没有尝试过,但是 MySQL 是一个符合标准的数据库,所以如果 Visual Studio 可以处理,那我不明白为什么不能。【参考方案2】:

如果此数据表是静态的或几乎完全静态的(意味着您每周手动编辑一次或类似的方式),则 CSV 会简单得多。

一旦它变得比这更复杂,随着情况变得更复杂,数据库看起来会更好:

1) 多个用户将在单个表中读取和写入

2) 这一张桌子变成2张桌子,然后是5张桌子,然后是15张桌子……

【讨论】:

【参考方案3】:

除非你擅长解析文件,否则我会坚持使用数据库,你总是可以很容易地导入你的 csv 文件。至于一个好的教程,只需 google mysql,前 5 个左右的链接应该足以让您入门。

--编辑--

更不用说 PHP 有很多非常好的内置函数用于 mysql 数据库调用,只需查找 mysql_query 及其在 PHP.NET 上的相关函数

【讨论】:

【参考方案4】:

我认为,如果这是一个移动 web 应用程序,您会关注性能以及返回结果或脚本执行的速度。我肯定会使用 CSV 文件上的数据库。这是Stack Question,我认为也可能有所帮助。

【讨论】:

【参考方案5】:

我会坚持使用数据库 - 特别是如果您已经构建了它。如果您需要扩大规模,您会看到更好的性能。此外,如果您以后需要开始做更复杂的事情,数据库将可以灵活地做更多事情。这并不比处理 CSV 数据更难(我会说更容易,但这就是我),并且您可以获得数据库的优势,即使您从不需要它们。您将始终拥有选择权。

至于导入数据,您可以轻松设置脚本来读取 .CSV 文件并将其插入数据库。您甚至可以将其设置为定期运行。您上传一个具有特定名称的文件,每隔几分钟您就有一个 CRON 作业运行一个脚本来查找该文件,将其导入数据库,然后在成功时删除该文件。

至于书籍,我喜欢 O'Riley 系列 - 请查看这本书以了解您选择的 DBMS。还有大量关于处理数据库的网络教程。 PHP 和 MySQL 都被很好地覆盖了。作为奖励,有免费、易于设置的工具,例如 xamp,可以在您的 PC 上运行 Apache/PHP/MySQL,以便于开发。

【讨论】:

【参考方案6】:

我会使用 SQLite 数据库。它是 CSV 文件和 MySql 之间的中间地带。 SQLite 不需要你在你的机器上运行一个服务器进程。没有什么可安装的。 SQLite 数据库是单个文件,您可以将其保存在任何您喜欢的位置。使用 PDO,或者如果您是 5.3,请使用新的 SQLite3 扩展。不要使用 sqlite 扩展,它会创建旧的 SQLite2 数据库。 SQlite2 已经被弃用了一段时间。哦对了,一个使用 PDO 的教程:http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html

【讨论】:

以上是关于数据库是为我的 Web 应用程序存储数据的最佳选择吗?的主要内容,如果未能解决你的问题,请参考以下文章

与 ID 数组相比,检测数据库中要删除的字段的最佳方法

如何在 Web 浏览器中处理大数据集?

在应用程序中存储静态数据的最佳方式

为我的Rails应用程序创建自定义配置选项的最佳方法?

将我的 ICollection 覆盖为我的 edmx 文件中的 IList 的最佳方法,在 asp.net MVC Web 应用程序中

在 iOS 设备中保存从 Web 下载的图像的最佳位置?