2017-04-06 5 views
0

함께 예약 한 승객/손님에 대한 데이터를 6 자의 영숫자로 구성된 공통 참조 번호와 함께 저장하려고합니다. 테이블의 기본 키는 함께 (ref_number, number_of_guest)이어야합니다 (예 : (ASDFJK; 1)은 예약 내 게스트 # 1을 참조하고, ASDFJK; 2는 예약 내 게스트 # 2를 나타냄). 내가 SET NEW.ref = randomlyGeneratedString 같은 BEFORE INSERT ON 트리거와 함께이 참조 번호를 만들지 만 MySQL에는 행 수준의 문장 만 있기 때문에 슬프지만 동일한 예약 내 모든 사람들에게 n 개의 다른 참조 번호 만 추가 할 수 있습니다. 이치에 맞지 않는다.MySQL에서 무작위로 생성 된 문자열을 기본 키로 사용하는 방법은 무엇입니까?

+0

귀하의 질문에 정확히 무엇이 있습니까? 참조 번호가 6 자의 영숫자 여야 만하는 이유는 무엇입니까? – mba12

+0

이상적으로 예약 테이블에는 예약 자체에 대해 하나의 행이 있고 그 테이블에는 참조 번호가 포함됩니다. 승객/손님을위한 별도의 테이블, 예약을 참조하십시오. – Uueerdo

+0

무작위로 생성 된 참조가있는 테이블에 행을 생성한다고 가정 해 봅시다. 어떻게 그 테이블을 게스트에 연결합니까? 그래서 한 사람의 손님이 3 명이라면, 나는'guest' 테이블에 3 개의 행을 추가합니다.하지만 각각의 레코드에 참조 번호를 삽입하려면 어떻게해야합니까? 다시 말하지만, 참조는 트리거'generate_reference BEFORE INSERT ON reservations'로 생성됩니다. 예약 시스템과 웹 사이트에서 참조 번호를 생성하여 문제를 해결할 수 있지만 데이터베이스 내에서 수행하는 것이 더 좋습니다. MySQL이 진술 수준 트리거를 결여 한 것은 부끄러운 일입니다 ... – Gabe

답변

1

primary key (평소대로 primary key)이 자동 증가로 생각하지 않으므로 필드 저장을 추가하면 모든 것을 할 수 있습니다.