본격적으로 draw.io 를 이용해 데이터 모델링 실습을 해보자
우선 Entity 를 분리하고 각 Attribute 를 관계도로 그려냈다.
각 Entity의 식별자를 선정해야 한다 식별자가 하는일은 원하는 대상을
정확하게 타겟팅을 해야한다
어떠한 값도 중복되는 값을 가지고있으면 안된다
해당 표에서는 city, name은 중복될 수 있는 값이기에 식별자로 사용이 불가능
이 테이블에서 식별자로 사용가능한 user_id, email, national_id 를
후보키(candidate key) 라고 부른다
그리고 기본키로 선정한 이외의 key들을 대체키(alternate key) 라고 부른다.
아쉽게도 저자, 글, 댓글 에는 식별자로 선정할만한 컬럼이 없기에
각각의 인조식별자를 만들어 준다.
해당 사진에서 저자 아이디 는 다른테이블의 기본키를 참조한다 이러한 키를
왜래 키 라고 한다.
외래 키(외부 키, Foreign Key)는 한 테이블의 필드(attribute) 중 다른 테이블의 행(row)을 식별할 수 있는 키를 말한다.
선생과, 반 이 있다고 가정하면
반은 담임이 한명일 수 밖에 없고
선생또한 반이 한반일 수 밖에 없을떄
1:1 관계라고 한다.
저자는 댓글을 여러개 작성이 가능
댓글은 한개의 저자만 가질 수 있음
1:N 관계라고한다
한작가는 여러개의 글을 작성할 수 있고(저자참여 기능)
글또한 여러개의 저자를 가질 수 있기에
N:N 관계라고 한다.
저자는 꼭 댓글이 존재해야 하는것은 아니다
하지만 댓글은 꼭 저자가 존재해야 한다
이러한 경우 댓글을 Optional 저자를 Madatory