부서 테이블, 직원 테이블이 있고 부서1:n직원 일때 그냥 직원 테이블 속성에 부서의 기본키를 참조하는 외래키 속성을 만들면 되지않나?왜 굳이 중간 테이블을 만들라는거지? 정규화 때문인가?
외래키 제약은 특별한 이유 없이는 안쓴다고 보시면 되어요.
정규화도 하나의 이유겠지요.
외래키 안쓴다구요? 직원 테이블에서 어느 부서에 속하는지를 부서의 기본키를 참조하게 해야하지 않나요?
아니면 외래키에 대해서는 논리적으로만 다루고 실제로 DB에는 제약을 두지 않는건가요?
아 네. 논리적으로만 두고 실제 제약은 두지 않아요. 여러가지 이유가 있는데 속도 문제도 있고, 실수할 여지도 많고, 또 은근 귀찮기도 하고, 굳이 쓰지 않아도 요즘에는 더 하이레벨에서 외래키 제약을 검증해주는 더 나은 방법들이 있어서요.
오 감사합니다!
그런 경우도 있습니다
넹
캐싱, 샤딩같은 별도의 속도향상 기법 안쓰고 스키마바꿔서 속도최적화하는 병신같은 곳 가끔 있음, 그런데는 그럼
보나마나 인덱스 최적화도 안되어있을듯 ㅋㅋ
옹
해당 댓글은 삭제되었습니다.
그냥 기존의 부서를 변경할 부서로 update하면 되지 않음? 기록을 꼭 남겨야함?
맞네요 이말이.
질문의 요지를 잘못이해했어요. 중간 테이블은 보통 말씀하신 경우에 만들어요.
아하 필요에 따라~