Проектирование базы данных для меню отеля

У меня есть таблица с названием отели и вот схема

tables(type, id, name, description, menu, address)

Я могу легко хранить тип, идентификатор, имя, описание и адрес. Все они являются строками и целыми числами.

Учтите, что существует около 100 отелей, каждый из которых имеет разную стоимость.

Но как насчет меню? Как я могу это сохранить? Меню будет примерно таким:

Pasta : 10 euros
HamBurger : 5 euros
#similarly many items in the menu

Может кто подскажет как хранить? Пожалуйста, постарайтесь объяснить подробно. Я вообще не понимаю. Я пытался хранить меню в другой таблице с идентификатором отеля, действующим как внешний ключ, но это заставляет меня писать 100 таблиц только для меню.


person Swaroop Nagendra    schedule 13.08.2013    source источник
comment
Прямо сейчас вы просто просите нас переписать учебник с индивидуальным учебным пособием, и вы не продемонстрировали никаких исследований или других усилий. См. раздел Как задать вопрос, нажмите "Домашнее задание stackexchange" и наведите указатель мыши на текст со стрелкой голосования. Покажите этапы своей работы, следуя учебнику, с обоснованием и задайте 1 конкретный исследовательский вопрос, не повторяющийся в первую очередь, где вы застряли. (Руководства по языкам и инструментам для записи и использования проектов не являются такими учебниками.)   -  person philipxy    schedule 07.06.2020


Ответы (2)


Я бы сказал, что вы создаете таблицу для всех возможных меню («макароны», «гамбургер», ..), а вторая таблица связывает их с отелями.

Например: меню (menu_id, название, цена) hotels_menus (hotel_id, menu_id)

Чтобы найти все блюда для данного отеля, вы извлекаете их с помощью «ВЫБРАТЬ m.name, m.price FROM hotel_menus AS hm INNER JOIN menus AS m ON hm.hotel_id = [hotel_id] AND hm.menu_id = m.menu_id»

Если цена отличается для каждого отеля, вы перемещаете поле цены в таблицу hotels_menus.

person Walter81    schedule 13.08.2013

На самом деле вам также понадобится поле категории, например, закуска, основное блюдо и т. д. Возможно, вам даже понадобится больше

person user3631034    schedule 05.06.2020