Як розробити бд для системи бронювання столиків

За першим варіантом я вже висловився - зв'язок багато-до-багатьох не потрібна. Є таблиця ресторанів з додатковою інформацією, є таблиця столиків, у кожного з них вказаний id ресторану (один-ко-многим), є таблиця місць за столиками у кожного з яких зазначено id столика. У таблиці замовлень у кожного замовлення вказуйте id столика, або id місця, або ще одну пов'язану табличку (один-ко-многим) з місцями для кожного замовлення (для оптимізації цю табличку можна упаковувати в поля таблиці замовлень типу поле id_мест і вміст, наприклад " 1,10,15 ".

За другим малюнку. Place і Table - все нормально. OrderAndTable потрібно тільки, якщо у вас в одному замовленні бувають кілька столиків.

"В першому ресторані 30 столиків а з id від 1 до 30, а в другому Id будуть вже від 30 до 60 наприклад" - ніяких проблем і навіть якщо у вас будуть упереміш id столиків різних ресторанів.

"Чи можна як то зробити складовою ID типу у одних столиків від 1 до 30 але з PlaceId 1, типу 1_1, 1_2 і тд?" - можна зробити первинний ключ по двох полях відразу, причому друге буде auto_ancrement - нормальне рішення, просто з деякими ORM'амі можете відчувати деякі незручності.

Ваш відповідь на питання

Схожі статті