더북(TheBook)

이 테이블 이름을 Character라고 합시다.

▼ 표 7-5 Character 테이블로 각 캐릭터별 소유주가 있음

ID

OwnerUserAccountID

Etc

Little Elf

Hong Gil Dong

...

Big Orc

Hong Gil Dong

...

 

이렇게 하면 Hong Gil Dong은 플레이어 캐릭터 Little Elf와 Big Orc를 가진다고 표현할 수 있습니다. 여기서 OwnerUserAccountID라는 필드는 플레이어 정보를 담은 UserAccount 테이블의 레코드를 가리켜야 합니다. 플레이어 테이블 중 고윳값이 보장되는 것은 현재 프라이머리 키로 설정해 놓은 ID입니다. 따라서 OwnerUserAccountID 필드는 UserAccount의 ID 필드를 가리켜야 하겠죠. 정리하자면, OwnerUserAccountID는 UserAccount의 ID 필드를 가리키는 외래 키입니다.

뒤에서 설명하겠지만, 외래 키를 갖고 CRUD를 자주 합니다. 따라서 외래 키에 대해서 인덱스를 설정하는 것이 좋습니다. 다만 여기서 외래 키는 중복을 허락해야 하므로 논유니크 인덱스(nonunique index)로 설정해야 합니다.

플레이어 캐릭터와 아이템 간 상관관계도 살펴봅시다. 플레이어 캐릭터는 아이템을 여러 개 가질 수 있어야 합니다. 역시 반대로 말하자면, 아이템을 가리키는 레코드 각각은 자기 자신을 가지고 있는 플레이어 캐릭터를 가리키고 있어야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.