Я использую XAF (инфраструктура DevExpress) для моего первого приложения (это CMS). Существует компонент Планировщик. И это сохраняет повторяемость события как xml. Например:Избегайте разбора полей 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). Мне нужно выбрать событие для определенной даты или периода (сегодня, завтра, в текущем месяце и т. Д.).
Pproblem в том, что в таблице будет 10000 (например) записей, тогда мне нужно разобрать их все, чтобы найти событие для даты запроса. Я думаю, что это сокращение производительности.
Какое решение вы видите?
Я думаю сделать следующее: когда событие создано (в CMS), затем добавьте в таблицу постоянные поля и программно заполните их.
Как лучше создавать поля для хранения этих данных?
И еще один вопрос. Например, событие будет проходить в течение недели в 5 часов и в 8 часов. Планировщик создаст две записи в таблице:
id EventName RecurrenceInfo Description //otherfields
1 event1 xml1 description1
2 event1 xml2 description1
Проблема в том, что планировщик создать еще один записи и все поля равна кроме RecurrenceInfo. Я думаю, чтобы создать еще один столбец идентификаторов и присвоить одинаковое значение всем повторяющимся записям.
Спасибо и извините мой английский.
Тип поля RecurrenceInfo является NVARCHAR, и я не могу изменить его. – user348173
вы можете добавить drigger и поместить xml в свою другую таблицу с помощью столбца XML там или проанализировать XML и поместить в таблицу с столбцами столбца Start End datetime –