0

내가 수행중인 평가 작업의 경우 엔티티 앨범에 자체 참조 속성 인 also_bought 속성이 있습니다. 그러나이 하나의 속성은 어느 앨범에 대해서도 여러 항목을 가지고 있습니다. 왜냐하면 also_bought 권장 사항은 거의 하나의 권장 사항이 아니기 때문에 정규화와 관련하여 의문의 여지가 있습니다. 나는 그것이 1NF를 통과하는지 여부를 확신하지 못한다.자체 참조

분명히하기 위해, 전체 기업의 세트는

+0

"1NF"의 정의는 무엇을 의미합니까? (내 대답의 링크를 참조하십시오.) "다중 항목"은 무엇을 의미합니까? 그 also_bought 값은 album_ids의 목록입니까? 열 유형이 정확히 무엇입니까? – philipxy

답변

0

는 "또한 구입"항목을 별도의 테이블에 보관해야합니다

앨범 (also_bought album_id, 제목, 재생 시간, 장르, 출시일, 가격,)입니다 좋아.

AlsoBought (table) 
    album_id 
    also_bought_album_id 

그런 다음 Album.album_id를 참조하도록 두 열의 외래 키를 구성하십시오.

0

당신은 앨범는 "자체 참조 테이블"이라고 의미는 같은 테이블에 다른 한 열 목록에서 FK (외래 키)를 가지고 있기 때문에? (FK 제약 조건은 열 목록의 하위 값을 다른 곳에 표시해야하는 경우에도 적용됩니다.) also_bought 유형이 album_ids 목록이라는 것을 의미하면 전자의 후자에 대한 값이 있기 때문에 후자에 대한 FK가 없습니다. ids)는 후자 (ids)에 대한 값이 아닙니다. FK를 상기시켜주는 제약이 있습니다.

어쨌든 정규화는 하나의 테이블에서 이루어지며 FK에 의존하지 않습니다.

언제든지 "normalizing to 1NF" eliminating "non-atomic columns"이 될 때마다 "표" "열"에 포함 된 것을 결정해야합니다. 행의 열에 대해 "많은 값"이 들어있는 셀을 결정하면 관계형 테이블이 없으므로 하나만 생각해 내야합니다. 가장 쉬운 방법은 set-valued 열을 가정하여 관계를 얻은 다음 standard rules for elimination of too-complex column types을 따르는 것입니다.