2

간단한 테이블 구조 : ID_1의 INT, ID_2의 INT,MySQL의 고유 색인없이 여러 열 열

이 사용자 사이의 관계를 생성하는 간단한 관계 테이블이다. id_1 및 id_2는 항상 다른 테이블에있는 user_ids입니다. 하나의 user_id 쌍이이 테이블에 두 번 이상 존재할 수없는 인덱스를 만들려고합니다. 어떤 ID가있는 열에 관계없이. 주어진 사용자 ID : 1 및 2, 레코드가있는 경우 : 1,2

다음 레코드 : 2,1은 중복으로 간주되어야합니다.

고유 색인 작성에 대한 모든 시도는 열 특정 적이기 때문에 이런 식으로 작동하지 않습니다. 이 구조화 방법이 있습니까? 아니면 저장 프로 시저 또는 이와 유사한 방법으로 수행해야합니까?

+1

이런 종류의 작업에는 트리거가 필요합니다. 그러나 일반적으로'id_1'과'id_2'가 상호 교환 가능한 테이블은 보통 디자인 문제를 의미하며 일단 테이블로 질의를 시작하면 고통스러운'JOIN' 로직에 대해 스스로를 설정하고 있습니다. –

+1

비슷한 질문 : http://dba.stackexchange.com/questions/22085/unique-combination-key-mysql –

답변

1

만약 내가 너 였고 나는이 길을 가야 만했다. (Ed Gibbs에게 +1하면 디자인 문제가있다.) MySQL에 삽입하는 코드에서 나는 항상 id_1을 가질 것이다. < id_2. 따라서 응용 프로그램에 액세스 할 수 있고 항상 id_1 < id_2를 만들면 아무런 문제가 없습니다.