dbdiagram.io를 활용한 데이터베이스 ERD 설계

hoifoi·2023년 10월 29일
0


MySql을 간단하게 찍먹해보았는데,
사실 그 전에 해봐야 할 일이 있다!
바로 데이터 베이스 설계!

전문 용어로 Entity-Relationship Diagram(ERD)를 설계한다는 것인데
어려워 보이지만 쉽게 설명하자면
어떤 데이터를 다룰지, 그 데이터는 어떤 테이블에 저장할지,
그렇게 해서 총 몇개의 테이블을 다루고, 각 테이블 간의 연관관계는 어떤지 결정하는 것이다!(이렇게 말해도 조금 어려워 보이네..ㅜ)

쉬운 설계를 도와주는 사이트가 있다!
바로 dbdiagram.io 인데, 그림판에서 그림을 그리듯 직관적인 설계가 가능하게끔 도와주는 녀석이다!

가입 없이도 바로 이용이 가능한데, 나처럼 날린 후 피눈물을 흘리지 않으려면
꼭 가입을 하고 사용하는 것이 좋을 것이다(자동으로 저장이 되니깐)

방법은 MySql에서 테이블을 생성할 때처럼
쿼리를 써주면 알아서 그림이 그려지는데

table users{
  id integer
  name varchar(100)
  mail varchar(300)
  birthday timestamp
  phone_number varchar(300)
}

이런 식으로 간단한 users 테이블의 내용을 써주면

이렇게 뿅! 하고 오른쪽에 알아서 표가 그려진다!
그럼 한가지 테이블을 더 만들어주면!

자, 그림에서 보면 알다시피 families 테이블의 user_id 칼럼은
users의 id와 연결된 포린키이다!
이 관계도 정리를 해줄 수가 있는데!
아래와 같은 내용을 적어주면!

Ref: "families"."user_id" - "users"."id"


이렇게 테이블 간의 포린키가 연결되는 것을 알 수가 있다!

한 가족에 여러 가족 구성원이 있을 것이기 때문에
users의 id와 families의 user_id는 one to many 관계이므로
여기에 맞게 수정을 해주면!

이렇게 many 칼럼으로 뾰족괄호(>)의 방향을 맞춰주면
one to many의 관계를 보여줄 수 있고 마우스를 올려다 보면 더 자세한 표시가 보인다!

당연히 반대의 경우에는

Ref: "families"."user_id" < "users"."id"

로 써주면 될 것이고
many to many의 관계 에서는 아래와 같이 써주면 된다!

Ref: "families"."user_id" <> "users"."id"

실제로는 many to many의 관계에서는 중간 테이블이 있을 것이므로
위의 코드는 실제로 쓸 일은 없을 것이고 그에 맞게 내용을 작성 해보면!

이렇게 될 것이다!
사실 성향차이에 따라 실제로 테이블 생성 시에만 조심하고
ERD는 조금은 간소하게 할수도 있지만,
실제 프로젝트를 할 때에는 백끼리도 소통이 잘 안될 때가 많다!
그러니 가능하면 어디에서든 능력이 되는 만큼 상세하게 문서를 작성하는게 좋은듯 하다!
(다행히? 나의 경우에는 소통 불통을 빨리 겪어서 이 중요성을 벌써 알게 되었다ㅋㅋ)

이렇게 작성하면,
중간 중간 테이블의 구조가 바뀔 때 마다
이 부분에서만 수정을 해준다면 다른 사람들도 금방 알 수가 있을테고
평화가 찾아 올 것이다..!

특히나 나처럼 시각적인게 있어야 이해가 쉬운 백엔드에겐 아주 좋은 부분..
(시각적인게 좋으면 프론트엔트 하라는데 성향은 백엔드가 더 맞는거 같다ㅋㅋ)

++
발돋움 중인 예비 개발자 입니다.
태클 및 의견 공유 언제나 환영 :D

profile
컨텐츠 기획자 출신 백엔드 개발자 :D

0개의 댓글

관련 채용 정보