Как разработать БД для системы бронирования столиков?

Всем привет. Нужно разработать систему бронирования столиков ресторанов. Итак, есть таблица 1Рестораны (PlaceId, SomeFields). Есть таблица 3Столики (TableId, SomeFields). Их связывает таблица 2 РестораныИСтолики (PlaceId, TableId). То есть между 1 и 3 связь многие ко многим.

Далее есть таблица 5Заказы(BookId,SomeFields), которая связывается с таблицей столиков через таблицу 4СтоликиИЗаказы (TableId,BookId). Правильно ли я спроектировал это? У ресторанов много столиков, на каждый столик много заказов в разное время. Буду очень благодарен за ответы)
  • Вопрос задан
  • 3307 просмотров
Пригласить эксперта
Ответы на вопрос 2
Mandor
@Mandor
Вы связали 1 и 3 способом "многие ко многим", это означает, что один и тот же столик может принадлежать нескольким ресторанам, не могу представить как такое может быть? В моём понимании каждый из ресторанов владеет своим набором столиков, в таком случае таблица 2 не нужна, а 1 и 3 должны быть связаны способом "один ко многим".

По поводу заказов: нужна одна табличка с заказами, в которой будет поле id_столика (BookId, TableId, SomeFields). Ваш вариант подошел бы для случая, когда заказ может быть сразу на несколько столиков.
Ответ написан
@Gregary Автор вопроса
Итак, как же все таки
1) 83384db98c854116ad2be1780e2c627d.png

2)5de85f3dcfa141cca3fdd1dc5c85180f.png

Все таки мне кажется первый правильнее. Иначе получается что к примеру в первом ресторане 30 столиков а с id от 1 до 30, а во втором Id будут уже от 30 до 60 к примеру. Можно ли как то сделать составной ID типа у одних столиков от 1 до 30 но с PlaceId 1, типа 1_1, 1_2 и тд?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы