inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

[DBMS/ORM] 1:1 관계를 강제하는 주체

202

최성규

작성한 질문수 25

0

안녕하세요.
20세기 '선사시대'부터 프로그래밍을 한 사람입니다. 경력 단절이 있어서 늦은 때에 DBMS를 다시 보고 있고,
21세기 초반까지 없었던(제 기억에) ORM이라는 신세계를 경험하고 있습니다.
 
MySQL 자체에서는 1:1 관계를 강제하는 방법은 두 테이블 중 FK를 가진 테이블에서, FK에 UNIQUE 제약을 거는 것으로 생각됩니다. 어디 문헌을 참조한 것이 아니라 제가 테스트를 해 본 결과 그렇다는 것입니다.
Sequelize 모델 정의시 양 테이블에 각각 hasOne(), belongsTo()를 적어 1:1 관계를 정의하고 실행시켜 MySQL에 생성된 테이블을 조사해 보았는데 거기에는 FK에 UNIQUE 제약이 걸려 있지 않은 것을 확인했습니다.
 
이런 시험을 통해 저는, '1:1 관계를 강제하는 주체는 DBMS 가 아니라 ORM(Sequelize)이다'라는 결론을 내렸습니다.
저의 이러한 추론이 옳은 지, 특히 뭔가 오해하고 있는 부분이 있지는 않은지에 대해, Zeorcho님의 평가를 요청드립니다.
 
감사합니다.

dbms mysql orm nodejs sequelize mongodb Sequelize

답변 1

1

제로초(조현영)

네, 시퀄라이즈는 key에 unique는 걸지 않는 걸로 알고 있습니다. ORM이 제약을 거는 게 맞습니다. 아마 억지로 sql로 추가하더라도 처음 것(또는 마지막 것)만 가져와서  join할 것 같네요.

리눅스 노드 설치시 패키지

0

165

0

socket.js 에서 referer로부터 roomId를 가져올 때

0

916

3

스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문

0

2291

2

a[title] 질문드립니다

0

383

1

리뉴얼 강의 및 공부 방법

0

586

1

jwt decode

0

1135

1

node.js 교과서 3판 질문드립니다

0

394

1

passport와 jwt

0

437

1

리뉴얼 강의

0

422

2

혹시 Node.js 교과서 3판 이북은 언제 나오나요?

0

356

1

몽고디비 사용자도 MYSQL부분을 들어야 하나요???

0

486

1

sql 쿼리 로그는 어떤 모듈이 작성하나요?

0

507

2

nunjucks res.render('error'); 작동을 안합니다.

0

516

1

질문있습니다.

0

348

1

multer 한글 파일 업로드시 파일명이 깨져요.

1

3538

1

수업자료는 어디있나요?

0

370

1

질문 있습니디

0

241

1

multer 사용시 file 외 name값은 못받나용?

0

424

1

코드 중복 부분 질문드립니다.

0

300

1

api 만드는 이유 질문드립니다.

0

291

1

Strategy의 done에 대해 질문드립니다.

0

372

1

안녕하세요 fs 권한 관련 질문드립니다

0

453

1

시퀄라이즈 연결질문...

0

504

2

res.setHeader vs res.cookie

0

1791

3