Хранение дней месяца для одного объекта в SQL Server - PullRequest
0 голосов
/ 03 июня 2018

У меня есть таблица Event, которая содержит следующие столбцы:

ID
UserId
Title
StartDate
EndDate
Repeat (Check constraint (M,W,D)) -- Monthly, Weekly, Daily
Time
DaysId (FK)

Вопрос 1

Я хочу добавить столбец для хранения многих днеймесяц, например:

  • Событие 1 должно повторяться ежемесячно в месячные дни (2, 4, 8, 23)

  • хорошо ли этоидея хранить их в одном столбце, разделенном (, | или т. д.)?

  • Это хорошая идея, чтобы хранить их в другой таблице как MonthDays (ID, DayNumber)?

Или есть какой-то другой способ, которым я могу выполнить это быстро и эффективно.

Вопрос 2

Events таблица имеетФК столбца дней.который будет не нулевым, если значение столбца Repeat равно Weekly.Я храню значения дней в другой таблице Days, в которой есть следующие столбцы

ID
Mon (bit)
Tue (bit)
Wed (bit)
...

Есть ли лучший способ хранения дней?

1 Ответ

0 голосов
/ 03 июня 2018

Это ответит на ваш вопрос, но не совсем так, как хотелось бы.

У вас, похоже, есть сущность eventScheduleRule, которая определяет одно правило для события.Это может быть 3-го числа каждого месяца.Или 4-я пятница.Или воскресенье после первого полнолуния весеннего равноденствия.Какие бы правила вы ни приняли, у вас может быть одно правило, которое устанавливает один или несколько дней для события.

Тогда event может содержать одно или несколько правил для планирования события.

Я бы предложил использовать такую ​​структуру для настройки расписания.

...