2017-01-27 4 views
0

나는 X 성분 조합이 Y 급식과 같을 수있는 성분/식사 테이블 설정이 있습니다.MySQL : 테이블 디자인 방법

예 : Ingredients 'Carrots, Meat, Cabbage'= Meal 스튜입니다.

사용자가 자신의 재료를 선택하여 추가하면 식사가 생성됩니다. 나는이 두 테이블을 many2many 관계로 만들었습니다. 나는 식사 당 성분을 첨가하기 위해 3 번째 테이블이 필요하다는 것을 알았지 만, 내가 만난 문제는 비용이다.

예 : 샌드위치 식사를하고 싶다고합시다. 빵 (1 달러), 고기 (1 달러), 치즈 (2 달러)를 추가 할 것입니다. 이것은 식사를 "샌드위치"4 $로 만들 것입니다.

내가 겪고있는 문제는 식사 테이블에 "비용"열이 있고 식사에 연결된 식사 재료에 "비용"열이 있지만 식사가 먼저 만들어 져야하고 재료가 SELECTED되어 있어야합니다. 이는 재료가 오래 가기 때문에 아직 총비용을 알지 못함을 의미합니다.

식사의 총 비용이 아직 입력되지 않은 성분이라고 mysql에게 어떻게 알릴 수 있습니까?

+2

'meals.cost' 열을 없애고 성분 목록의 비용을 합산하는 것? –

+0

정확히 맛있지는 않습니까? – Strawberry

답변

0

어떻게 데이터를 입력 하느냐에 따라 다르지만, meals에 대한 인터페이스와 meal-ingredients에 대한 인터페이스가 있다고 가정 해 봅시다 (이와 같이 태그를 지정했기 때문에 PHP로 작성되었을 수 있습니다).

내가 할 일은 성분을 업데이트하거나 만들 때 meals.cost을 업데이트 할 트리거를 사용하거나 PHP 스크립트가 삽입/업데이트 후에 해당 쿼리를 실행하도록하는 것입니다. 그렇게하면 cost이 항상 정확해야합니다. 필드의 경우, 내가 기본값으로 0 (재료비가없는 식사는 기술적으로 비용이 없음)으로 만들 것입니다.