restaurant 관련 Database Modeling

백승진·2020년 10월 26일

음식점을 운영한다는 가정하에 category, product(제품), material(재료)간 관계를 도식하고 짧게 설명하라.

category : noodle, rice, drink, side-menu...
product : pasta, bread, cola, juice...
material : 물, 밀가루, 설탕, 꿀...

  • product는 category에 소속, category와 product은 1:N 관계를 가진다.
    (예로 product가 "콜라" 또는 "쥬스"라면 category 중 "drink"에 소속된다.)
  • product은 여러가지 재료를 가질 수 있으므로 product과 material는 1:N 관계이다.
    (예로 "콜라"는 material 중 "설탕"과 "물" 등을 material로 가질 수 있다.)
    또한 material은 여러 product에서 사용될 수 있으므로 material와 product은 1:N 이며
    (예로 "물"과 "설탕"은 "콜라"와 "쥬스"의 material로도 사용된다)
    결국 product과 material간 관계는 N:N 이다.
  • N:N 관계에선 중간에 table을 마련, product과 중간 table은 1:N 관계가 되도록 하고 material과 중간 table간 관계를 1:N 관계가 되도록 처리한다.
    (중간테이블을 receipe라 칭하고 제품당 사용되는 재료를 관리한다. receipe의 데이터들은 자신이 사용되는 제품id를 할당받아 제품과의 관계를 1:N으로 관리할 수 있다. 그리고 material은 여러 receipe에서 가질수 있으므로 material과 receipe간 1:N으로 관리 가능)

profile
12년 .NET 개발 경력을 가진 웹 초짜 개발자입니다 :)

0개의 댓글