繁体   English   中英

使用XML进行数据存储

[英]Using XML for data storage

我被要求使用一个非常锁定的内容管理系统创建一个虚假的博客。 我没有能力使用数据库进行内容存储,所以我玩弄了使用XML来存储文章数据的选项; 日期,标题,摘录,标签和内容等基本内容,并使用jQuery呈现页面。

文章的篇幅不会很长,但创建这样的应用程序是否有任何利弊?

如果你不喜欢重新发明轮子http://www.flatpress.org/做得很好。

以下是有关平面文件DBS中ACID合规性的有趣讨论: http ://www.perlmonks.org/?node_id = 524840

尽管我是XML的粉丝,但在数据存储/传递方面,使用它比任何其他可能的格式似乎都是一种下意识的反应。 一个好的数据库永远是一个更好的解决方案,但如果真的不可能,那就试着避免将所有内容都转储到一个巨大的XML文件中。 使用所需的元数据(日期,标题,标签......)为每篇文章存储单独的文件将是一个良好的开端。 或者,文章内容可以嵌入XML中。 因为XML最初用于定义标记语言,所以感觉就像在家一样,尽管现在看来你发现它更常用于数据结构。

许多较小的XML文件,然后可能是另一个做一些索引的文件将是要走的路。 这至少会在数据库中进行的分区和索引附近进行。 无论你做什么, 都不要创建一个或几个巨大的XML文档 否则你有一天会回到这里询问其中一个“帮助我解析1 GiB XML文档并耗尽内存”问题:)

Hunter.ross的建议看起来非常好。

你绝对可以使用XML来实现存储目的,但是实现起来并不昂贵。

由于您没有提到您的平台,我假设您正在使用.NET! 使用XElement ,XML的使用并不比数据库查询复杂。

另一方面,你想要达到的目标是在你的表现上花费大量时间。 如果您不考虑将整个XML文件加载到内存中,那么每次要保存某些内容时,您的XML文件都会被重写。 如果这样做,一旦XML文件开始变大,您很快就会出现“Out of memory”异常。

使用XML的实现成本相对较高,因为您必须通过手动过程来了解如何从XML获取检索数据,其中简单的数据库查询将执行相同的操作。

如果您考虑除XML之外的任何其他选择,我建议您使用SQLite ,您也可以阅读何时使用SQLite 您不需要任何数据库安装,它是可移植的。 它只是存储在您的服务器上的二进制文件,而SQLite几乎在每个平台上都有API,它有各种各样的包装器。 这更像是在数据文件上执行数据库查询。

SQLite只是另一个关系数据库,如SQL Server,MySQL等,您可以执行您所知道的各种SQL查询,还可以与Entity FrameworkNHibernate或任何其他ORMs

性能不会像SQL Server / MySQL那样,但您可以使用此SQLite为您网站的数千个访问者提供服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM