안녕하세요.
개발을 하면서 문득 궁금증이 생겨서 질문드립니다.
일반적으로 테이블 생성 시 기본키 생성전략을 어떻게 가져가야 하는지에 따른 고민입니다.
현재 제가 협업에서 개발 진행하면서 테이블을 설계할 경우 크게 3가지를 사용합니다.
1. 년원일시분초+난수 조합을 사용한 20자리 랜덤키
2. 해당 테이블 약어 + SEQ
3. LOG성 테이블은 AUTO_INCREMENT
현재 위처럼 사용하고 있는데 기존에 사용하던 방식을 그대로 따라가다 보니 1번 방식으로 사용하다가
그래도 키 값에 의미는 있어야하니 2번 방식으로 사용했었습니다
이번에 JPA를 공부하면서 강의내용 중 테이블의 키 값은 비즈니스 로직이 들어가지 않는
LONG Type Column + 대체키 + 키 생성전략이라고 써있던데
정확히 이해는 가지 않지만 Mysql이라면 int는 몇 억 row 이상은 데이터가 들어가지 않은 long 타입으로 설정하고 AUTO_INCREMENT를 사용하라
라고 이해했는데 저런식으로 모든 테이블을 사용하면 관계가 있는 테이블과의 외래키 설정이나 이런 부분에서 아예 문제가 없을까요?
저 방식이 아닌 다른 좋은 방식의 키 생성 전략이 있을까요?