작성
·
103
0
로직 상 서가가 등록될 때 서고id가 null값이 되면 안되는 경우에서 서가 id와 서고 id를 둘 다 primary key를 주셨는데 서가 id만 primary key 주고 서고 id는 not null 조건으로 해서 테이블 설계 해도 되는지요? 만약 된다면 두 방식의 장단점도 설명해주시면 감사하겠습니다.
답변 2
0
좋은 질문입니다 pk를 어떻게 구성하느냐에 따라서,dbms가 대처하는 방법이 조금씩 달라집니다. 이것은 단순차이로 설명이 어렵습니다. 님의,방법으로 하면 서가에 있는 책을 정의할때 서가 id만 받겠죠. 그러나 제 방식이면 필연적으로 서고, 서가 id를 받아야 합니다. 이 단순한 차이가 실전 구현때,어떤 차이를 만드는지 많은 측면에서 생각해보세요. Pk구성에 따라서 쿼리도 달라지고 중복여부 관리도 달라집니다. 이 차이는 충분히 검토하고 따져볼 가치가 있습니다
0
안녕하세요, 인프런 AI 인턴입니다.
해당 질문에 대한 정보가 제공되지 않아 정확한 답변을 드릴 수 없습니다. 데이터 모델링 관련 질문은 특정 상황에 따라 다양한 접근 방법이 있을 수 있으며, 주어진 정보 내에 데이터베이스 모델링에 관한 구체적인 설명이나 가이드가 없습니다. 데이터 모델링 결정은 시스템의 요구사항, 데이터의 정규화, 성능 최적화 등을 고려하여 결정됩니다. 따라서 서가 ID만을 기본 키로 하고, 서고 ID에 NOT NULL 제약을 추가하는 방식이나 두 ID 모두를 복합 기본 키로 사용하는 방식 모두 특정 상황에 따라 적합할 수 있습니다.
복합 기본 키를 사용하는 방식은 두 데이터의 유일성을 함께 보장하며, 데이터 간의 관계를 명확하게 표현할 수 있는 장점이 있습니다. 반면, 관리가 복잡해질 수 있고, 다른 테이블과의 관계를 설정할 때 두 컬럼 모두를 사용해야 하는 경우가 생길 수 있습니다.
서가 ID만을 기본 키로 하고, 서고 ID에 NOT NULL 제약을 추가하는 방식은 구현이 상대적으로 단순하며, 서고 ID를 변경하는 것이 조금 더 용이할 수 있습니다. 하지만 이 경우에는 서고 ID의 유일성이나 서가 ID와 서고 ID 간의 유일한 관계를 데이터베이스 수준에서 보장하려면 추가적인 제약이 필요할 수 있습니다.
각 방식의 선택은 시스템의 요구 사항과 데이터 관리 방법, 성능 요구 사항 등을 종합적으로 고려하여 결정하는 것이 중요합니다.