Search
Duplicate
🛢️

노션 데이터베이스 제대로 활용하기

간단소개
관계형 속성이 있잖아요. RDBMS처럼 써 봐요!
ContributorNotionAccount
주제 / 분류
Notion
Data Base
태그
Scrap
팔만코딩경 컨트리뷰터 (Library DB (속성)에 관계됨)에 관계됨
7 more properties
RDBMS에 대해 어느정도 이해하고 있는 독자를 위한 글입니다.

Notion 데이터베이스 제대로 활용하기

노션의 데이터베이스
예시로 알아보기
마치며...

1. 노션의 데이터베이스

노션의 데이터베이스는 표와 비슷한데 몇 가지 유용한 추가 기능을 제공합니다.

1) 그냥 표

구분
1단
2단
3단
1
1
2
3
2
2
4
6
3
3
6
9
이렇게 생긴 그냥 표가 있습니다.
그냥 표가 필요할 때는 데이터베이스보다 표를 쓰는 게 더 좋습니다.

2) 데이터베이스의 추가 기능

데이터베이스에는 표에는 없는 다양한 추가 기능이 있습니다.
표에는 텍스트만 있지만 데이터베이스에는 사람, 날짜, 숫자 등 다양한 데이터를 저장하고,
어떤 조건으로 필터를 걸거나, 정렬하거나, 새 속성을 만들거나 하는 등의 작업이 가능합니다.
그냥 이렇게만 들으면 별로 감이 안 올 수 있는데, 바로 예시로 좀 더 자세히 알아보겠습니다.

2. 예시로 알아보기

스터디에 대한 페이지를 만든다고 가정하겠습니다
스터디 내에는 여러명의 멤버가 있습니다.
멤버 한 명의 계정이 여러개일지도...?
스터디 내에는 여러개의 프로젝트가 있습니다.
멤버 한 명이 여러개의 프로젝트에 참여할 수 있습니다.

1) 데이터 모델링

실제 RDBMS처럼 모델링을 우선 해 보겠습니다.
일단 멤버 테이블과 프로젝트 테이블이 필요하겠네요.

멤버 테이블

아이디와 간단 소개가 있으면 되겠네요. 추가로 노션에서는 계정까지!
기본 속성
Search
아이디
간단 소개
노션

프로젝트 테이블

그리고 프로젝트 테이블에는 프로젝트 이름이랑 태그 정도가 있으면 되겠죠?

다대다 관계 매핑

실제 RDBMS였다면 멤버와 프로젝트를 연결해주는 테이블이 필요했을 거에요.
멤버와 프로젝트는 대다다 관계니까요.
하지만! 노션 데이터베이스의 관계형 속성을 사용하면 그런 게 따로 필요가 없습니다.

2) 노션 데이터베이스로 만들기

RDBMS에서 각 테이블이었던 것들이, 노션에서는 각각 데이터베이스가 됩니다.
다대다 매핑은 단순히 관계형 타입의 속성을 추가해주면 됩니다.
한 쪽에만 추가하면 다른 한 쪽에도 자동으로 생성되는데, 이름만 적당히 바꿔주세요.
이렇게 하면 참여한 프로젝트를 추가하면 그 프로젝트의 프로젝트 참여자에 자동으로 추가되고, 마찬가지로 프로젝트 참여자에 추가하면 그 사용자의 참여한 프로젝트에 자동으로 추가됩니다.

3) 실제로 페이지에서 활용하기

이제 이 데이터베이스를 통해 실제 페이지를 만든다면 어떻게 될까요?

스터디 구성원 목록, 프로젝트 목록 페이지

그냥 노션 데이터베이스의 뷰를 썼을 뿐인데 벌써 그럴듯 해 보이죠?
아무것도 한 게 없지만 굳이 이걸 만드는 걸 보여드린 이유는... 이것을 프로젝트 페이지와 스터디 멤버 페이지에서 재사용할 수 있기 때문입니다!

프로젝트 페이지 - 프로젝트 멤버?

방금 스터디 전체 멤버 페이지를 만들었는데요, 그걸 복사해서 프로젝트 페이지에 붙여넣을게요.
테스트용 가짜 프로젝트를 보시면 스터디 멤버에 대한 뷰를 만들고, 필터를 추가했습니다.
이 프로젝트에 참여하고 있는 멤버만 노출되는 것을 확인할 수 있습니다.
필터만 적절히 걸어줬을 뿐인데 그럴듯한 프로젝트 멤버 페이지 완성!
이제 프로젝트 페이지마다 이렇게 뷰를 추가해주면 됩니다. 정말 간단하죠?
아쉽게도 현재 버전의 노션에서는 이것까지 자동화 하는 기능은 없습니다.... ㅠ
스터디 멤버 페이지에서도 같은 방법으로 참여한 프로젝트 목록을 날로 먹을 수 있어요!!

기타 - 룩업, 수식 타입의 속성

필터에 contains Me도 있다는 사실 아셨나요? 보드 뷰에 이 필터만으로 벌써 칸반 완성!
필터와 정렬, 그리고 관계형 외에도 정말 유용하게 쓸 수 있는 기능이 또 있습니다.
룩업은 RDBMS의 테이블 조인과 비슷합니다. 룩업을 활용하면 “이 프로젝트 참여자의 노션 계정” 등의 속성을 쉽게 만들 수 있습니다.
그냥 수동으로 직접 추가해도 되지만, 룩업을 활용하면 프로젝트 페이지마다 추가할 필요도 없고, 변경된다 하더라도 멤버 데이터베이스만 업데이트하면 다른 페이지도 자동으로 업데이트되죠!
수식은 다른 속성으로부터 계산된 속성입니다. 여러가지 기본 속성으로부터 목록에 노출 여부를 결정하는 속성 등을 만들 때 정말 유용합니다.
예를 들면 스터디 탈퇴 여부 속성과 임시 계정 등의 속성으로부터 계산되도록 할 수 있겠죠. 다른 속성으로부터 계산될 수 있는 것을 사람이 직접 관리한다면 정말 귀찮을 거에요...
이미 친숙한 개념일테니 굳이 글로 남기지 않더라도 바로 쓰는 데 지장 없을 거에요. 그러니까 굳이 그 예시까지 작성하지는 않을게요. 귀찮아서 그런 거 아니에요. 절대로!

3. 마치며...

노션의 데이터베이스는 강력한 기능입니다.
그냥 표처럼 쓸 수도 있지만, 이런 기능들을 쓴다면 정말로 강력한 기능이 됩니다.
이 글을 보신 여러분들은 데이터베이스 기능을 정말 유용하게 잘 사용하셨으면 좋겠어요
TMI:
노션 데이터베이스는 이 프로젝트를 참여한 사람이 참여한 프로젝트 목록 자동화가 안 돼요. 위 예시처럼 프로젝트/멤버 데이터베이스가 따로 있다면 내가 참여한 프로젝트도 안 되고요. 필터를 룩업 속성에는 걸 수 없더라고요... (현재 버전에서는요. 업데이트되면 알려주세요!) 이런 아쉬운 부분이 있긴 하지만, 그래도 잘 활용한다면 정말 유용하게 쓸 수 있습니다. 강추!!