Вопрос по sql – Как можно представить запланированные события в РСУБД?

6

Я должен хранить запланированные события (например, например, время занятий), которые могут быть организованы на еженедельной, ежедневной или ежемесячной основе. События могут происходить, скажем, каждый понедельник и среду или каждый второй четверг месяца. Есть ли способ хранить эту информацию в РСУБД, которая придерживается 3NF?

РЕДАКТИРОВАТЬ: Это не домашнее задание; Я создаю что-то вместе с другом для нашего собственного назидания, и мы хотим, чтобы это было в 3NF.

Чтобы быть точным, я пытаюсь сохранить графики для массовых и исповеди в приходах RC. Они могут быть запланированы по-разному, например, каждое воскресенье в x раз или каждый вторник в другое время. Иногда это только третья пятница месяца, а другие предлагаются только в определенное время один раз в год. Мне нужно не только хранить эту информацию, но и запрашивать ее, чтобы я мог быстро получить исчерпывающий список доступного времени на следующий день или неделю или что-то еще.

Я полагаю, что строго говоря, 3NF не является обязательным требованием, но для нас было бы проще, если бы это было так, и лучше было бы исправить его с нуля, чем изменить нашу схему позже.

Error: User Rate Limit Exceededstackoverflow.com/questions/85699/…, stackoverflow.com/questions/123793/… Paolo Bergantino
Error: User Rate Limit Exceeded Paolo Bergantino
Error: User Rate Limit ExceededcouldError: User Rate Limit ExceededisError: User Rate Limit Exceeded Paolo Bergantino
Error: User Rate Limit Exceeded Aaron Alton
Error: User Rate Limit Exceeded George Stocker♦

Ваш Ответ

2   ответа
2

CREATE TABLE [dbo].[Schedule](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [StartDate] [datetime] NOT NULL,
    [EndDate] [datetime] NULL
)

CREATE TABLE [dbo].[ScheduleInterval](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [ScheduleID] [int] NOT NULL,
    [ScheduleIntervalUnitID] [int] NOT NULL,
    [Interval] [smallint] NOT NULL
)

CREATE TABLE [dbo].[ScheduleIntervalUnit](
    [ID] [int] NOT NULL,
    [Name] [varchar](50) NULL
)

INSERT INTO ScheduleIntervalUnit (ID, Name)
SELECT '1' AS [ID], 'Day' AS [Name] UNION ALL
SELECT '2' AS [ID], 'Week' AS [Name] UNION ALL
SELECT '3' AS [ID], 'Month' AS [Name] 

cron

Error: User Rate Limit Exceeded
2

Error: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded astine

Похожие вопросы