# BOM (Bill Of Materials)
데이터를 다루다보면 계층형 데이터들이 있다
대표적으로 카테고리 데이터!!!
카테고리 데이터는 동일한 데이터이지만
서로 부모와 자식 관계를 가질 수 있다
이렇게 계층형 데이터를 DB에 저장할 때
우리가 잘아는 순환 관계로 표현이 된다
위의 모델은 1:M 관계를 표현하지만
M:M 관계를 표현하지 못한다
다시말해서
상위 데이터(1)가 여러 개의 하위 데이터(M)을 가질 수 있다.
(상위 카테고리는 여러 하위 카테고리를 가진다)
그러나
여러 개의 하위 데이터(M)가 여러 상위 데이터(M)를 가질 순 없다.
(하위 카테고리는 여러개의 상위 카테고리에 포함되지 않는다 - parent_category_no 컬럼이 하나)
이를 해결하는 모델이 바로 BOM 모델이다.
BOM 구조는 새로운 관계 엔티티를 추가하여 1:M 관계로 구성된 모델이다.
보통 제조업에서 많이 쓰여서 부품, 조립규칙으로 많이 설명되는데
요즘 식욕이 많아져서...
음식을 조합하는 걸로 예시를 들어보려한다.
샐러드를 만드는 데 기본적으로 채소와 드레싱이 조합이 된다
닭가슴살 샐러드와 일반 샐러드를 만들 때
동일한 채소와 드레싱을 사용하여 만들게 되는데
채소가 닭가슴살 샐러드와 일반 샐러드에 포함이 되고
샐러드가 채소와 드레싱을 포함하는 다대다(M:M)관계가 성립된다
BOM 모델은 이렇게 계층형 데이터들 간의 M:M 순환 구조를 가지고 있는
데이터를 저장하는데 사용되는거라 보면 된다.
[참고자료]
https://ora-sysdba.tistory.com/entry/Seminar-%EC%88%9C%ED%99%98-%EA%B4%80%EA%B3%84-BOMBill-Of-Materials
http://wiki.gurubee.net/pages/viewpage.action?pageId=983056
To be continued.........
Made by 꿩