서비스를 이용하다가 1개 계정당 게임 캐릭터를 1개 사용할 수 있다던지하는 예를 본 적이 있을 것이다.

계정 데이터를 갖고 있는 User 테이블게임 캐릭터 정보를 갖고 있는 Charater 테이블을 만들면 아래와 같다.


User

id

username

email

password

1

streetfighter

realguy@world.com 

************** 

2

kingoffighter

toughguy@world.com 

*********** 


Character 

id

user(OneToOne)

name 

type

gender

1

1

길거리파이터

태권도

여자

2

2

싸움왕

무에타이

남자


로그인시 사용하는 계정 이름"streetfighter"인 사용자는 게임에서 "길거리파이터"라는 캐릭터 이름을 갖고 있다. 

"streetfighter"로 접속한 사람이 게임에서 사용할 캐릭터는 "길거리파이터" 뿐인 것이다.


이렇게 1대1인스턴스를 이어주는 역할을 하는 것이 OneToOneField이다.


서로 데이터가 연결되어있으니 User 테이블에서 Charater 테이블로 자유롭게 접근이 가능해진다.

OneToOneField를 사용하기 위해서는 관계를 맺을 테이블에서 새로 필드를 만들어서 자신의 테이블명을 입력하면 완성된다.


1
2
3
4
5
class Character(models.Model):
    user = models.OneToOneField(User)
    name
    type
    gender
cs


블로그 이미지

쵸잇

,