나는 내 웹 사이트에 대한 친구의 시스템을 통합하고 여러 값에 대한 질문 ...MySQL의 테이블 레이아웃, 동일한 열
한 질문이 설정되는 방법이다.
freind 1, 2, 3, 4, 5 등과 같이 친구가 추가 할 때마다 많은 열을 가질 수 있으며 행은 추가 된 사용자가됩니다.
더 좋은 방법이 있나요 ?? 그런 식으로하는 첫 번째 생각은 친구들이 가질 수있는 친구의 양에 대한 상한선을 의미합니다 ...
나는 내 웹 사이트에 대한 친구의 시스템을 통합하고 여러 값에 대한 질문 ...MySQL의 테이블 레이아웃, 동일한 열
한 질문이 설정되는 방법이다.
freind 1, 2, 3, 4, 5 등과 같이 친구가 추가 할 때마다 많은 열을 가질 수 있으며 행은 추가 된 사용자가됩니다.
더 좋은 방법이 있나요 ?? 그런 식으로하는 첫 번째 생각은 친구들이 가질 수있는 친구의 양에 대한 상한선을 의미합니다 ...
복수 열에 대한 제안은 first normal form을 위반합니다. 인위적으로 친구의 수를 제한하는 것은 그러한 구조가 지루하고 지루하고 비효율적입니다.
복합 기본 키를 구성하는 2 개의 열 (userid1
, userid2
)이있는 친구의 접합점 표가 필요합니다. 두 열 모두 user
테이블과 FK 관계가 있습니다.
많은 RDBMS에서 검사 제약 userid1 > userid2
을 가질 수 있으므로 관계는 하나의 형식으로 만 저장할 수 있지만 검사 제약 조건은 somewhat broken in MySQL입니다.
+1 : 복합 기본 키는 역 중복을 막지 않을 것이다. IE : 1,2와 2,1은 유효한 복합 PK 값으로 간주됩니다. –
좋아요,이 기술을 배울 수있는 곳으로의 링크가 있습니까? – carlgcoder
@carlgoder - 제 답변의 요지는 실제로 정상화에 관한 것입니다. [첫 번째] (http://en.wikipedia.org/wiki/First_normal_form), [두 번째] (http://en.wikipedia.org/wiki/Second_normal_form) 및 [세 번째] (http : //en.wikipedia.org/wiki/Third_normal_form) 일반 양식. –
회원이 보유한 각 친구에 대한 레코드가있는 추가 테이블이 필요합니다. 예를 들면 다음과 같습니다.
members (id, name)
friends (member1, member2)
1 행 테이블을 사용하게 되나요? 그건 정말 똑똑한 DB 디자인이 아닙니다. 나는 1 테이블 (id, friend.id, friend_id_who_added)과 다른 테이블 friend (id, name)와 같은 것을 생각하고있다. – Trefex