避免解析数据库中的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类型的列,并使用以下查询
select
(list of fields)
from
MyTable
where
MyXmlField.value('(/root[Start])', 'datetime') > '01.01.2001'