영화, TV 시리즈, 도서, 게임과 같은 다양한 미디어 유형을 보유 할 수있는 미디어 목록을 만들고 싶습니다. 각 유형마다 다른 속성이 첨부 될 수 있습니다.미디어 목록에 대한 속성 정의 및 한 행에있는 값 반환
는 지금은 다음과 같은 테이블이 있습니다
categories
catid | name
1 | Books
2 | Movies
3 | Tv Series
media
mid | title | catid
1 | Book 1 | 1
2 | Movie 1 | 2
3 | TV Series 1 | 3
4 | Book 2 | 1
5 | Movie 2 | 2
attributes
attrid | catid | name
1 | 1 | number of pages
2 | 1 | description
3 | 1 | year
4 | 2 | length
5 | 2 | cast
6 | 2 | description
7 | 3 | cast
8 | 3 | description
9 | 3 | year
10 | 3 | number of episodes
attribute_info
attraid | mid | attrid | value
1 | 1 | 1 | 213
2 | 1 | 2 | Description...
3 | 1 | 3 | 1996
4 | 2 | 4 | 210 minutes
5 | 2 | 5 | Actor1, Actor2
6 | 2 | 6 | Description...
7 | 3 | 7 | Actor3, Actor4
8 | 3 | 8 | Description...
9 | 3 | 9 | 2010
10 | 3 | 10 | 12
categories
는 서로 다른 유형의 미디어에 대한 정보를 보유하고 있습니다. media
은 개별 미디어 항목에 대한 정보를 보유하고 있으며 attributes
은 카테고리마다 다른 속성을 정의하고 attribute_info
은 정보 자체를 보유합니다.
SQL
이상적으로 내가 할 수있는 그룹 미디어 속성이이 작업을 수행하는
Array([mid] => 1, [title] => Book 1, [catid] => 1, [name] => Books, [number of pages] => 213, [description] => Description..., [year] => 1996)
방법 같은 것을 하나의 출력 행으로이 얻을 모든 정보가해야을 통해 정보를 가져 오기 위해 효율적인 방법을 찾고 있어요 내부 조인이지만 범주에 특성을 추가 할 때 PHP 코드를 변경하고 싶지 않습니다. 내 목표를 달성하는 방법은 SQL
의 우아함은 무엇입니까?