XML与SQL小型项目?


10

我正在做一个小项目,因为它是本地应用程序(在WPF和C#中开发),所以一次只能有一个用户。为了存储数据,我曾考虑使用XML文件,但我想知道这是否是最佳方法。

数据用于什么:

  • 舍杜勒斯
  • 文件夹中的文件库(带有艺术家名称,标题,HDD上的位置)
  • 可能基于统计数据进行统计
  • ...

我想像中有关该库的信息会很好用XML,但是对于其余所有信息我都不太确定。同样,就开发速度而言,LINQ to SQL似乎比LINQ to XML更具收益。这是正确的还是我错了?我不确定是否应该将其发布在SO上或此处,但在这里似乎更合适!

先感谢您


2
代码“一次只能有一个用户”表示“六个月内这将是我们唯一的收入来源,需要同时支持4,000个用户”。制定相应的计划:)
Bryan Boettcher

您甚至不必运行sql服务器服务,如果您担心要从一台计算机迁移到另一台计算机,则可以将其设置为文件附加数据库。
彼得·史密斯

2
无论您选择什么,都可以创建一个抽象层,以便在必要时可以轻松地换用另一种方案
棘手怪胎

Answers:


13

如果您要进行大量的IO操作,那么SQL是更好的选择。SQL的设计使其能够很好地获取/存储数据,这就是为什么我们将其用于在类似XML的网站上存储数据的原因。

XML的意图是,它对于可以在应用程序之间共享和解释的人类可读数据很有用。XML解析涉及很多字符串操作,随着数据集大小的增加,代价可能很高。


3
不要忘记精简版。
JeffO 2011年

2

听起来您的数据可能无限增长(除非我误解了您的应用程序)。在这种情况下,我想说最好将持久性存储留给数据库引擎以提高效率和性能。


1

使用数据库方法。这是处理数据的成熟技术。

在性能问题上,您可以通过使用索引来加快访问速度,而在XML中,索引不存在这种方式。

在数据库上,您可以使用聚合函数来计算统计数据,而您必须对XML进行编码。

使用数据库,您可以相对轻松地更改数据库结构(添加列,表等),并且有一些工具可以帮助您在数据库之间移动数据,就像在XML中一样,您必须自己这样做。

在数据库中,您可以强制执行完整性规则,并且可以根据需要让用户编写自己的选择,而在XML中则不那么容易。

在数据库中,您可以非常轻松地对数据进行排序,还可以增加安全性。使用数据库,您可以忽略大小和并发性,因此将来,您的应用程序可以在不更改代码的情况下扩展。

对于上述内容,请使用数据库!EK

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.