在这种情况下Csv或Mysql?

时间:2009-11-21 06:22:00

标签: php mysql csv

我正在开始新项目。在我的项目中,我需要使用当地省份和当地城市名称。我不想拥有许多mysql表,除非我必须拥有或csv很快。对于省城案例,我不确定使用哪一个。

我有与城市,省份相关的工作公告。对于Csv案例,我会在公告表中保留城市名称,所以当我搜索时,我会在查询中将所选城市名称发送到db。

谁能让我更好地了解如何做到这一点? csv还是mysql?为什么呢?

提前致谢。

5 个答案:

答案 0 :(得分:4)

数据库专业人员

  • 将城市与省份和工作公告相关联意味着更少的冗余数据和一致的格式化数据
  • 搜索/报告数据的能力要简单得多,使用SQL [相对]标准化
  • 更具可扩展性,必要时可容纳GB数据
  • 基础设施已经到位,在线资源中有详细记录

平面文件(CSV)专业人士

我正在尝试,但我想不出任何。从csv读取意味着将内容加载到内存中,无论是否使用内容。正如旁观者所说,在应用程序使用过程中的变化将是一场噩梦。然后是基础设施来提取数据,搜索等等。

结论

使用数据库,无论是MySQL还是Oracle或SQL Server的免费版本。把事情从csv中解脱出来就是把自己编成一个角落,没有长远的好处。

答案 1 :(得分:2)

如果您使用CSV,如果您计划大量流量,最终会遇到问题。如果您要在您的计算机上亲自使用此功能,或在办公室中与几个人一起使用,那么CSV可能就足够了。

答案 2 :(得分:2)

我建议将其保留在数据库中。如果将名称存储在公告表中,则不会在查询中更新对csv的任何更改。

数据库旨在解决这些问题。

答案 3 :(得分:1)

如果您不想使用数据库表,请直接在PHP中使用硬编码数组:如果表现如此批评我不知道比这更快的方式(我没有看到一个优势)也使用CSV)。

除此之外,我认为这是一个明显的过早优化。您应该使您的应用程序可扩展,尤其是在规划阶段。不使用表将使整体结构变得僵硬。

答案 4 :(得分:1)

虽然人们经常担心数据库中表的扩散,但他们正在管理中。由DBMS管理。这意味着您可以控制数据控制任务,如更新,它还会降低正确组织数据的路径,即规范化。

大量的CSV或XML文件集合可能变得非常笨拙,除非您准备编写管理系统(已经有DBMS,因为它是免费的)。

有充分的理由不使用DBMS,但我没有找到很多,当然也没有在主流开发中使用。