避免解析数据库中的xml字段

本文关键字:xml 字段 数据库 | 更新日期: 2023-09-27 18:25:27

我的第一个应用程序(它是CMS)使用XAF(DevExpress框架)。有一个Scheduler组件。而且,它可以像xml一样避免事件的重复发生。例如:

<RecurrenceInfo Start="02/21/2012 09:00:00" End="02/28/2012 11:30:00" Id="e8507496-2be9-4bde-90a6-9eeea98fdc5a" Range="2" />

这是Range枚举(但存在其他一些枚举):

public enum RecurrenceRange {
        NoEndDate,
        OccurrenceCount,
        EndByDate
    }

此外,我还有另一个应用程序(ASP.NET MVC)。我需要为特定日期或期间(今天、明天、当月和其他)选择事件。

问题是,在一个表中有10000条记录(例如),然后我需要解析所有记录,以找到请求日期的事件。我认为这是降低绩效。

你看到了什么解决方案?

我想做以下事情:当事件(在CMS中)创建时,在表中添加一些持久字段,并以编程方式填充它们。

如何更好地创建用于存储此数据的字段?

还有一个问题。例如,事件将在本周的5点和8点进行。调度程序将在表中创建两条记录:

id      EventName      RecurrenceInfo      Description        //otherfields
1        event1            xml1            description1
2        event1            xml2            description1

问题在于调度程序创建了一个以上的记录,并且除RecurrenceInfo之外的所有字段都相等。我想再创建一个id列,并为所有重复的记录分配相同的值。

谢谢,对不起我的英语。

避免解析数据库中的xml字段

您可以创建一个Xml类型的列,并使用以下查询

select
  (list of fields)
from
  MyTable
where
  MyXmlField.value('(/root[Start])', 'datetime') > '01.01.2001'