Вопрос о нормализации таблицы базы данных

Я делаю календарь онлайн.

Каждый сможет создать en событие и затем иметь возможность принять решение добавить "бесконечный" или "от" "закончить" дату и время. И если Вы принимаете решение добавить "от" "закончиться", можно выбрать его, чтобы не быть никаким повторением или повторением каждый день, каждую неделю или каждый месяц.

Интересно, что лучший способ состоит в том, чтобы создать эти отношения.

Вот мои таблицы, которые я имею прямо сейчас:

Table: Events
Columns: name, description, date_time (foreign key)

Table: Date_time
Columns: from, to, repeat (foreign key)

Table: Repeat
Columns: mode, days
1: "daily", "every 2nd day"
2: "weekly", "Monday, Wednesday"
3: "monthly", "1st, 12th, 19th"

С этим я встречаюсь с некоторыми проблемами.

Здесь я должен указать События date_time, потому что это имеет ограничение внешнего ключа. Как я могу позволить пользователю принять решение не указать какую-либо дату и время, просто она установила на большое количество.

И то же идет для Повторения. Если пользователь установил дату и время, я хочу дать возможность установить повторение ни на один.

Мог кто-то указывать на меня в правильное направление.

Спасибо

1
задан never_had_a_name 31 July 2010 в 10:58
поделиться

1 ответ

Я бы предложил пересмотреть схему, мое предложение такое:

EDIT: поскольку у события может быть не более одного периода, лучше использовать from и to как столбцы, если они null, то событие будет действовать бесконечно.

Table: Events
Columns: id, name, description, from (nullable), to (nullable)

Table: Repeat
Columns: mode, days, event_id (foreign key to Event)
1: "daily", "every 2nd day"
2: "weekly", "Monday, Wednesday"
3: "monthly", "1st, 12th, 19th"
2
ответ дан 2 September 2019 в 22:33
поделиться
Другие вопросы по тегам:

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