사용자 및 업적 두 개의 테이블이있는 SQL Server 데이터베이스가 있습니다. 내 사용자는 여러 업적을 가질 수 있으므로 다 대다 관계입니다.SQL Server many-to-many 디자인 권장
학교에서 우리는 그런 종류의 관계에 대한 연관 테이블을 만드는 것을 배웠습니다. 이것은 UserID와 AchivementID가있는 테이블을 만드는 것을 의미합니다. 하지만 500 명의 사용자와 50 개의 업적을 갖고 있다면 25,000 행이 될 수 있습니다.
대신 내 Users 테이블에 이진 필드를 추가 할 수 있습니다. 예를 들어, 해당 필드에이 사용자가 첫 번째 및 네 번째 업적을 달성했음을 의미하는 10010이 포함 된 경우
다른 방법이 있습니까? 그리고 어느 것을 사용해야합니까.
이러한 성취도를 연속적으로 완료하거나 잠금 해제해야합니까? – NitroxDM
연관 테이블을 사용하십시오. 각 사용자의 업적이 50 개인 경우 25000 행입니다. 각 사용자는 50 명입니까? 나는 그렇게 생각하지 않는다. 그리고 다른 무엇을 달성하기를 원하십니까? 디스크 공간이나 효율적인 질의를 줄이기 위해서? – berkay
세 번째 표를 사용하면 가능한 관계가 25000 가지가되며 각 사용자가 모든 만족도를 얻지 못하는지 의심 스럽지만 훨씬 더 유연한 솔루션입니다. –