알았어 애플리케이션 레이어에서이 작업을 수행 할 수 있다는 것을 알고 있습니다.이 작업은 아마도 가장 쉬운 작업이지만, DB에 오류가 발생하지 않도록 할 수 있습니다. 진지한 질문여러 열에 걸쳐 양방향 고유 인덱스를 구현하는 방법
두 개의 열 X와 Y가 있습니다. 각 열에 두 개의 정수 (A 또는 B 중 하나의 열)를 저장합니다. 그것이 가능한 것은 어떤 경우에 우리는 B와 A와 열 Y로
- 열 X가 있어야 같은 것을 고유 인덱스 제약 조건을 가지고
나는 시나리오를 줄 것이다
나는 두 명의 사용자가 있는데, userA는 id 678498이고 userB는 id 679879이다. 두 사용자는이 세션에 대한 새로운 레코드를 테이블에 저장해야한다는 2 인 게임을하려고한다. (tbl_chalenger). 이렇게하려면 열이 "host"및 "challenger"인 테이블이 있습니다.
나는 고유의 구속이UNIQUE KEY `UNIQUE_PARTICIPANTS` (`host`,`challenger`)
브랜딩 사용자로 tbl_challenger에 호스트를 추가하거나 도전자가 게임을 시작한 사람에 기본적으로 달려있다. 사용자 A가 게임을 시작 그래서 경우 동시에 사용자 B가 사용자 A와 함께 게임을 시작하려고하면, 슬프게도하지만 새 레코드를 생성
INSERT INTO `tbl_challenger` VALUES(678498 , 679879);
을 다음과 같이 우리가 쿼리를 가지고, 우리는
INSERT INTO `tbl_challenger` VALUES(679879, 678498);
를 얻을 수 같은 참여자의 새로운 불필요한 행을 만듭니다. 이것은 UNIQUE 키 제약에 관계없이.
그래서 내 질문은 "호스트 도전자"뿐만 아니라 "는 도전자 호스트는"MySQL의에서 내가 할 수있는 유일한 방법은 동일한 데이터 쌍
나는 지금 이것을 시도하고 몇 분 후에보고 할 것입니다! – stone
물론, 시간이 걸릴 ;-) –
우수 작품 완벽하게! 예, 단지 MySQL을 사용하는 응용 프로그램을위한 확장이며 다른 DBMS에 대해 완전히 새로운 추상화 레이어를 작성할 시간이 없기 때문에 MySQL을 사용합니다.하지만 더 많은 시간이 필요할 때 반드시 살펴볼 것입니다. 대단히 감사합니다 해커 – stone