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