백엔드 Back-end/데이터베이스 Database

dbdiagram.io를 활용해서 쉽고 간편하게 데이터베이스 모델링하기

Tap to restart 2023. 6. 20. 08:00
반응형

dbdiagram.io

DBML(Database Markup Language)이란 언어를 사용해서 관계형 데이터베이스 논리적 설계를 돕는 무료 툴이다. ORM(Object Relational Mapping) 또는 SQL DDL(Data Definition Language)을 활용한 물리적 설계 전에 미리 간편하게 설계해서 시간을 절약할 수 있다.

 

DBML(Database Markup Language)이란?

아래 예처럼 SQL DDL을 좀 더 간소화한 것에 가깝다. 딱 설계에 필요한 정보만 남겨 DDL보다 훨씬 파악하기 쉽다.

Table users {
  id integer
  username varchar
  role varchar
  created_at timestamp
}

Table posts {
  id integer [primary key]
  title varchar
  body text [note: 'Content of the post']
  user_id integer
  status post_status
  created_at timestamp
}

Enum post_status {
  draft
  published
  private [note: 'visible via URL only']
}

Ref: posts.user_id > users.id // many-to-one

 

실제 dbdiagram.io의 예

아래 예제 DBML을 입력한 상태면 각 테이블이 화면에 나타나고 관계가 표시된다.

// Use DBML to define your database structure
// Docs: https://github.com/holistics/dbml/tree/master/dbml-homepage/docs

Table follows {
  following_user_id integer
  followed_user_id integer
  created_at timestamp 
}

Table users {
  id integer [primary key]
  username varchar
  role varchar
  created_at timestamp
}

Table posts {
  id integer [primary key]
  title varchar
  body text [note: 'Content of the post']
  user_id integer
  status varchar
  created_at timestamp
}

Ref: posts.user_id > users.id // many-to-one

Ref: users.id < follows.following_user_id

Ref: users.id < follows.followed_user_id

 

장단점

MySQL 워크벤치 등 무료 툴도 위와 같은 다이어그램을 만들어주지만, 좀 더 간편해서 좋다. 대신 DBML에 익숙해지는데 약간 시간이 필요하다. 

 

활용 예

깃허브 개인 프로젝트에 DB다이어그램을 간단히 넣고 싶을 때 활용할 수 있다. 

반응형