2014-11-11 4 views
0

사용자가 음식을 검색하고 선택할 수있는 레스토랑 프로젝트를 만들고 있습니다. 나는 그런 생각을하기 전에 만들지 않았고 데이터베이스 테이블의 디자인과 관계에 약간의 문제가있었습니다. 내가 여기에 볼 수 있습니다 내가 4 개 주 테이블 restaurants, meals, meal_typesmenu을 필요로이 경우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... 

입니다. 표 Restaurants가 개최 메인 식사 범주를 레스토랑

id 
name 
menu 
image 
text 
address 

Meal_types를 개최한다 - 음료, 샐러드, 디저트 등

id 
name 

표에 meals 모든 음식을 개최한다/음료

id 
name 
image 
text 
weigh 
price 

을 표 menu은 식당 선택시 표시 할 음식/음료를 보관해야합니다.

id 
name 

여기 까다로운 부분이 있습니다. 그들 사이의 관계를 만드는 방법. 보고 관계가있는 관계 중 하나는 mealsmeal_types 사이입니다. 하지만 다른 사람들? restaurants을 연결하는 방법과 사용자가이 식당에서만 제공되는 음식을보기 위해 식당을 클릭하는 방법. 나를위한 첫번째 생각은이 테이블 menu와 함께 있었다. 그러나 정확하게 방법을 모르고있다.

답변

0

더 쉽게 찾을 수 있습니다. ids을 나타내는 항목에 따라 이름을 지정하십시오. 그래서 당신의 테이블에있는 id 란에 이름을 짓기를 권합니다. restaurantRestaurant_id. 이것은 당신의 관계에 대한 일반적인 견해를 유지하는 데 도움이 될 수 있습니다.

가장 작은 부분부터 시작하십시오. 테이블 meals. 두 테이블 사이에 1 : 1 관계가 있으므로이 테이블을 Meal_types 테이블과 결합해야합니다 (각 테이블에는 정확히 한 유형이 있으므로 meal_typemeals에 추가하십시오).

둘째로 restaurants이 있습니다.

이제 식당에서 제공하는 식사 정보 만 있으면됩니다. 이 변환 테이블은 테이블 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' 
를 조회 할

Restaurant_id, 
Meal_id 

가 특정 식당의 MENUE을 얻으려면