数据库表或XML

时间:2008-10-21 12:58:46

标签: asp.net sql xml database

我正在设计一个小型网站,并且在XML文件可以/应该替换数据库表时很奇怪。在某些情况下,我认为使用数据库表可能过度,只是想知道是否有其他人遇到过这个决定。

谢谢!

9 个答案:

答案 0 :(得分:12)

如果您认为最终需要的数量不仅仅是少量的CRUD,或者您的网站将超出少数用户,使用数据库

搜索或更新XML文件可能会降低性能和未来的可扩展性。

答案 1 :(得分:7)

当可能发生并发写入时,我会选择使用数据库表,即在任何情况下,当您无法保证在任何时候只能对数据进行一次更改时。

此外,如果数据是关系型的,我会使用数据库。

对于可能流量较低的小事,XML很好。

答案 2 :(得分:3)

IMO:当您的数据有很多写入事务时,请使用数据库。如果您主要编写配置类型文档,主要是只读的,请转到XML。 XML作为数据存储区不是最佳解决方案,因为使用数据库可以获得更好的结果。特别是当您开始拥有许多记录(行)时,数据库开始变得更容易使用。

答案 3 :(得分:3)

考虑数据的性质,并限制数据存储对数据的限制。如果您的数据类似于记录而不是文档,具有规则的结构和很少的层次结构,并且数据元素之间可能存在许多水平关系,那么通常使用RDBMS可以获得比使用某种本机XML存储更好的性能和健壮性。如果您的数据采用文档形式,具有不规则的顺序结构和不确定的层次结构,那么您可能不会在RDBMS中对这些数据进行建模,并且您可能希望探索本机XML数据存储。开源示例包括

商业XML数据库包括

我自己还没有使用过这些产品。

在任何一种情况下,您都可以使用XML作为数据交换格式。

答案 4 :(得分:2)

我不同意斯蒂芬。特别是在应用程序之间共享数据时,应该使用数据库。

数据库用于共享数据。这就是他们发明的东西,这就是他们擅长的东西。即使在并发更新不存在问题的情况下,数据库也比XML文件更正式。而XML的非正式性在一开始就很诱人,但最终会导致无法使用。

虽然很难解决某些应用程序与数据和/或SQL接口的关系模型之间的阻抗不匹配问题,但仍然可以获得比使用XML更多的灵活性和稳定性。

对于正式数据分析不合适的情况,或者正式数据库设计超出开发团队的范围,我会保留XML。

答案 5 :(得分:0)

如果您不打算对记录进行多次更改(对于标签,配置等),则可以使用XML。否则使用表更合适。

答案 6 :(得分:0)

我设计我的表并使用select属性生成XML文档(FOR XML)。

我认为如果遇到性能问题,我可以使用DB更改我的存储库。

如果出现性能问题等,最好做可更改的设计。

答案 7 :(得分:0)

XML应该用于数据传输 - 即在应用程序之间移动数据(当其他应用程序因任何原因无法访问数据库时)。

然而, 使用数据库驱动网站几乎没有理由。

你也可以考虑一种混合方法,就像莱斯大学的Connexions项目所使用的那样:他们使用Plone(以及其他东西)来显示他们的数据库中的数据,这些数据是用CNXML方言创建的

答案 8 :(得分:-1)

我正在使用一个可以使用100%XML进行数据存储的应用程序。其原因是允许在许多不同的其他应用程序中进行文本搜索。有时,当您需要在其他应用程序中共享数据时,XML会更好。