2011-02-18 6 views
0

저는 People 테이블과 서비스 티켓 테이블을 가지고 있습니다. 서비스 티켓은 1 + People을 나타내며, 시간이 지남에 따라 사람들은 여러 티켓과 연결될 수 있습니다. SQL 데이터베이스에서이 관계를 표현하는 가장 좋은 방법은 무엇입니까?SQL 테이블 : 테이블 B의 단일 레코드에서 테이블 A의 알 수없는 행에 대한 참조를 저장합니다.

내 두 가지 옵션은 필자가 필요로하는 모든 사람 ID 또는 데이터베이스에서 가져온 CSV 스타일로 처리되는 하나의 거대한 문자열 열을 포함하는 '충분한'열을 만드는 것 같습니다. 이 두 가지 옵션 모두 용량이 최대인데 나쁜 디자인 인 것처럼 보이고 두 번째 디자인은 사람 ID를 사용하여 참여할 수 없음을 의미합니다.

약간의 배경 - 나는 클래스 프로젝트를위한 백엔드의 일부로 상당히 작은 데이터베이스를 구현하고있다. 나는 SQL로 일한 적이 없으며 내가 아는 것은 스스로 가르친다.

나는 이것이 중복 질문이되어야한다고 생각하지만 비슷한 것을 찾을 수 없습니다.

답변

2

아니, 경우 이 si a MANY to MANY 관계선은 그에 따라 테이블을 만듭니다.

person_id & ticket_id 열이 별도의 tickets_people 테이블을 만듭니다 Understanding SQL: Many to Many Relationships

+0

+1이 화합물 PK를 명시 적으로 식별하기 때문에 다른 세 번째 답변이 유용하지 않은 이유를 알 수있었습니다. –

2

대다는 관계 일반적으로 세 개의 테이블 생성의 경우 : 티켓 (ID, ...), 사람 (ID, ...) 및 TicketsPeopleJoin (TICKETID, peopleId) 같은 테이블에 가입

2

에서

PeopleServiceLink: 
PersonID, 
ServieTicketID, 
PRIMARY KEY (PersonID, ServieTicketID) 

읽기 듣는를 가지고 뭔가를 테이블을 만듭니다.

관련 문제