Я делаю календарь онлайн.
Каждый сможет создать 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, потому что это имеет ограничение внешнего ключа. Как я могу позволить пользователю принять решение не указать какую-либо дату и время, просто она установила на большое количество.
И то же идет для Повторения. Если пользователь установил дату и время, я хочу дать возможность установить повторение ни на один.
Мог кто-то указывать на меня в правильное направление.
Спасибо
Я бы предложил пересмотреть схему, мое предложение такое:
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"