나는 약간의 이상한 이유로 나를 혼란시키는 아주 기본적인 질문을 가지고있다.one-to-many 대 many-to-many 연관 디자인과 이점
두 개의 테이블이 있습니다. 하나는 테이블 Pages이고 다른 하나는 메뉴입니다. 궁금 해서요, 매핑을 위해 다른 테이블을 사용하면 어떤 이점이 있습니까? 내가 볼 수있는 유일한 차이점은 내가 검색 방법입니다
: 아래는 내가 생각하고있는 두 가지 구현입니다. 첫 번째 구현 예 : 예 :
a) 특정 메뉴의 모든 페이지를 원한다면 특정 메뉴 이름의 모든 page_ids를 쿼리하고 테이블 Pages의 ID와 조인 할 것입니다. (이것이 내가이 구현이 좀 더 느린 것이라고 생각하는 이유이다).
b) 특정 페이지의 모든 메뉴를 원한다면 특정 페이지의 page_id가있는 모든 메뉴를 검색합니다.
두 번째 구현 방식은 더 일반적이며 간단합니다 (더 많은 조인이 필요함).
두 번째 구현은 더 빠르기 때문에 (위에서 언급 한 것처럼 메뉴 이름을 검색하는 대신 색인 인 id 사이에서만 쿼리하기 때문에) 더 빠르기 때문에 생각합니다.)).
다른 특별한 이유가 있습니까? 이 두 디자인은 그들이 성취 할 수있는 것과 동일한 것입니까, 아니면 첫 번째 디자인에 다른 제한이 있습니까? 항상 두 번째 디자인을 선택해야합니까?
첫 번째 구현에서 하나의 메뉴는 하나의 페이지에만 속할 수 있으므로 다 대다가 아닙니다. – Andomar