글을 작성하게 된 계기
MySQL FK Convention을 어떻게 할 지 고민하던 과정에서 스택 오버 플로우의 한 글을 발견하게 되었고, 이를 정리하기 위해 글을 작성하게 되었습니다.
1. MySQL FK Convention
스택 오버 플로우를 보다가 MySQL의 FK 컨벤션에 대해 잘 정리된 글이 있어 블로그에 정리해야겠다는 생각이 들었습니다. 사실 별 내용은 없는데요, 글 예제 그대로 fk_참조하는 테이블_참조되는 테이블_필드 이름 과같이 설정하면 됩니다. 이는 공식 문서에 명시된 규칙은 아니기 때문에 편의에 따라 수정해도 괜찮습니다.
1
fk_[referencing table name]_[referenced table name]_[referencing field name]
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE users(
user_id int,
name varchar(100)
);
CREATE TABLE messages(
message_id int,
user_id int
);
ALTER TABLE messages ADD CONSTRAINT fk_messages_users_user_id
FOREIGN KEY (user_id) REFERENCES users(user_id);
2. 정리
외래 키 제약조건을 걸 때 아래와 같은 컨벤션을 적용하면 됩니다. 단, 이는 공식 문서에 지정된 규칙이 아니기 때문에 유동적으로 바꿀 수 있습니다.
1
fk_[referencing table name]_[referenced table name]_[referencing field name]