将 XML 审计数据存储到文件系统或 MS Access 表?
Posted
技术标签:
【中文标题】将 XML 审计数据存储到文件系统或 MS Access 表?【英文标题】:Storing XML Audit data to File System or to MS Access table? 【发布时间】:2010-07-29 12:20:26 【问题描述】:我的程序需要开始审核用户保存的 XML 数据。每当用户点击“保存”时;我需要插入他当前的数据(序列化为 XML)并将其保存在某处。以下是更好的选择:
-
创建一个文本文件并将所有 xml 放入其中。 (创建一个
每次保存一个新的文本文件)
在 MS Access 中使用表
我正在使用 .Net 2.0 / MS Access 2003
【问题讨论】:
哎呀,这是怎么回事? 【参考方案1】:在任何 DBMS 中使用表而不是文件存储的好处:
之后通过查询查询/挖掘数据的能力 以事务方式备份数据的能力对于文件系统上的 xml 文件,您将需要提出“唯一文件命名”的策略,并克服每个文件夹可以存储多少文件等限制。
在某些 RDBMS 中,Xml 是第一类数据类型(不幸的是,不适用于 MS Access),所以:
可以使用 XPath 查询您的 Xml,例如使用 XQuery。 在许多 RDBMS(例如 Sql Server)中,还可以在 Xml 中创建索引以提高上述查询的性能。但是,在 Access 中,您需要使用 maximum document size of 1Gb in Access 2010 存储在 Memo field 中。
TL;DR :如果您已经在使用数据库,请将 Xml 存储在其中。
【讨论】:
非常正确,我想我的问题是 MS Access 中的哪种数据类型可以保存 XML 数据?备忘录? 是的,备注字段可以正常工作,或者如果您知道长度不会大于 255,那么您可以使用普通文本字段 @kevin 是的,它肯定会 b3 > 255。备忘录效果很好。谢谢 还有索引可以加快搜索数据的速度。从理论上讲,您可以将 XML 加载到 ADO 记录集中并添加虚拟索引并获得性能优势,但何必呢? 备注字段(Access 2013+ 中的“长文本”字段)不限于 64K 字符。 64K 字符限制适用于文本框控件的内容,而不是备注字段本身。以上是关于将 XML 审计数据存储到文件系统或 MS Access 表?的主要内容,如果未能解决你的问题,请参考以下文章
XSLT(2.0 或 3.0)方法将存储在 xml 中的每个逗号分隔值的整个 xml 复制到单独的 xml 文件中
GWT 应用程序的数据存储位置 - GAE 数据存储或 XML 文件