2014-11-11 2 views
0

Я создаю один проект для ресторанов, где пользователь может просматривать и выбирать продукты. Я не делал этого раньше и не испытывал проблем с дизайном и отношениями в таблицах базы данных. Это тот случай,Дизайн и отношения MySQL

1. Restaurants 
2. Customer click on restaurant-1 
3. Customer get menu list for foods and drinks 
4. Customer browse the food via sub-categories (Salads, Drinks, Desserts and so on) 
5. Customer choose some food and drinks... 

Как я могу видеть, здесь я должен был бы 4 основные таблицы restaurants, meals, meal_types и menu. Таблица Restaurants проведет рестораны

id 
name 
menu 
image 
text 
address 

Таблица Meal_types проведет основную категорию еды - Напитки, салаты, десерты и так далее

id 
name 

Таблица meals будут держать все продукты питания/напитки

id 
name 
image 
text 
weigh 
price 

Таблица menu должна содержать, какие продукты питания/напитки следует показывать в ресторане, когда они выбраны.

id 
name 

Итак, вот сложная/трудная часть для меня. Как наладить отношения между ними. Одно из отношений, которое я вижу и должен иметь, - между meals и meal_types. Но другие? Как подключить restaurants с ними и когда пользователь нажимает на какой-нибудь ресторан, чтобы увидеть еду, которая подается только в этом ресторане. Сначала я подумал, что с этим столом menu, но не знаю, как именно.

ответ

0

Мне было проще называть ids в соответствии с представленными ими товарами. Поэтому я бы предложил назвать столбец id в вашей таблице restaurantRestaurant_id. Это может помочь вам сохранить общий вид в ваших отношениях.

Начните с наименьшей части: Ваш стол meals. Вы должны объединить эту таблицу со своей таблицей Meal_types, так как у вас есть соотношение 1: 1 между обоими (каждый прием пищи имеет ровно один тип, поэтому просто добавьте еще один колокол meal_type в meals).

Во-вторых, у вас есть restaurants.

Теперь вам просто нужна Информация о еде, предлагаемой Рестораном. Эта таблица перевода вашей таблица menue и содержит столбцы так:

Restaurant_id, 
Meal_id 

Чтобы получить Menue определенного ресторана вы бы запросить

SELECT 
    meals.meal_type, meals.name, meals.price 
FROM 
    restaurant, menue, meals 
WHERE 
    Restaurant.restaurant_id = menue.restaurant_id 
    AND menue.meal_id = meals.meal_id 
    AND Restaurant.name = 'Mc Donald's' 
Смежные вопросы