2012-02-10 70 views
0

我有一个应用程序检测AJAX驱动的WebBrowser控件的数据变化,然后将这些事务存储在规范化的数据库中。写入/插入数据到规范化的数据库设计模式

标准化的数据模型有4个,一个到多键表和思考写/插入时,它发生,我认为有可能是这一个经过时间考验的设计模式。

每个数据对象可以包含将在一个非归一化或弄平数据库被重复3个数据元素。

我会需要搜索所有三个表,以确定是否记录从交易中一个新的表记录插​​入唯一的数据元素之前已经存在?

是否有MS .NET,MFC或LINQ,一个C#类;

  1. 简化编码
  2. 提高性能
  3. 实现最佳的一流的设计模式?

我搜索的模式库,也没有看到任何迹象。

回答

0

是的!我遇到了类似的问题,并使用XML进行插入。

.NET有一些真棒内置XML功能,所以应该(希望)很容易把你的数据转换成某种XML结构。一旦你有了,你可以通过一个存储过程参数将它传递到数据库中进行插入。在存储过程中执行所有检查,而不是在代码中执行。

看看这篇文章:http://weblogs.asp.net/jgalloway/archive/2007/02/16/passing-lists-to-sql-server-2005-with-xml-parameters.aspx

+0

感谢您的意见。我还研究了Transact-SQL中的OpenXML命令。 – robWDC 2012-02-13 13:49:57

+0

这里的“关键”挑战是将数据插入到已存在记录的子表中,并且在将扁平化(非规范化)记录解析到父表时将使用此记录的关键字。进一步的研究表明,LINQ不支持批量插入/更新。一个有趣的技术描述了将扁平数组加载到临时表中,然后使用Transact-SQL将数据解析到相应的父表和子表中。不是T-SQL专家,我一直在寻找已经实施和测试过的代码或模式。 – robWDC 2012-02-13 13:57:40