将 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 文件

尝试将 XML 内容存储到 SQL Server 2005 中失败(编码问题)

oracle如何启用审计

Oracle审计参数