본문으로 건너뛰기

Notion DB 동적 속성 방법

 · reading-time-plural

NotionDBJOIN 이 안된다. 같은 목적의 DB 인데 type 에 맞게 다른 속성을 저장하고 싶으면 어떤 방법이 있을까?

사례로 일기 를 저장하는 DB 가 있고 하루하루 체크하고 싶은 것이 있다고 가정해보자.

2월 동안은 미라클 모닝 을 진행하고 있어 얼마나 성공했는지 기록하고 싶다. DB 스키마는 아래와 같을 것이다.

속성타입
제목텍스트
날짜날짜
미라클 모닝 성공 여부체크박스

3월에는 다이어트 를 하고 있다. 목표 식단을 얼마나 달성했는지 보고 싶다. 이전 미라클 모닝 과 동일한 스키마인데 식단 여부 속성만 달라지는 데이터가 생긴다.

또다시 식단 성공 여부 를 저장하는 DB 를 만들기엔 관리 비용도 높고 날짜를 합쳐서 볼 방법이 없다. (Notion Calender 가 있다고 해도 무한대로 등록해서 볼 수 없음)

JOIN 이 가능하다면 손쉽게 해결될 수 있지만 아쉽게 Notion 에선 지원하지 않는다. 이에 대한 나만의 해결 방법을 공유한다.

해결 방법

단순하다. 하나의 DBprefix 를 붙여서 속성을 구분하는 것이다.

나의 경우 DB 마다 다르지만 그룹핑 > 내용 (e.g. 운동 > 러닝) 의 형태로 구분하고 있다.

Insight

이렇게 운영하며 느낀 Insight 는 아래와 같다.

  • 일반 필터에서는 다중 선택OR 로 동작하기에 AND 조건을 보고 싶으면 고급 필터 사용

    일반 필터OR 조건임

    고급 필터 에서 AND 조건 만들 수 있음

    AND 필터가 많아서 불편하면 사진과 같이 여러 개 만들고 선택 안 해놓으면 됨 그럼 사진 기준으로 A > 2 , A > 3 둘 다 있는 것만 선택됨

  • 다중 선택 에서 > 에 따른 데이터 구분은 다중 선택 정렬 혹은 검색 을 통해 달성할 수 있음

    • 첫 번째 텍스트가 같은 것은 정렬되어서 보일 것이기 때문
  • 추가, 삭제, 이름 변경은 큰 문제 없음

  • 다중 선택 에서 일부분의 값 변경 시 테크닉

    • CSV 로 추출 후 다중 선택 속성을 변경 후 CSV 머지 하면 해당 부분만 바뀌지 않을까 했지만 CSV 에 정의된 데이터가 또 생성되면서 중복 데이터 발생해서 안 됨

    • 버튼 을 이용해서 다중 선택 의 일부분 값 추가 , 제거 가능

      여기서 토글 은 기존에 값이 있으면 제거하고 없으면 추가하는 동작임

  • 동적 필드 보기가 어려우면 동적 필드 목적에 맞는 보기 를 만들어서 달성 가능

  • 동적 필드 의 일부분만 다른 DB으로 뽑고 싶으면

    • 깡통 DB 로 이동 시 선택된 값만이 아닌 속성 통체복사 된다.
      • 깡통 DB에 부어넣어서 달성할 수 있는데 아쉽게도 다중 선택 에서 선택된 값만 이동되는 것은 아니고 다중 선택 속성이 통체로 복사됩니다.
      • 즉, 다중 선택A , B , C , D 가 정의되어 있고 이동하려는 페이지는 A , B 만 선택되어 있더라도 옮기기 시 다중 선택A , B , C , D 값이 모두 이동됩니다.
    • A DB 의 페이지를 B DB옮기기B DB 에 없는 이름의 속성만 추가됨
      • A DBB DB 로 이동 시 B DBA DB 와 동일한 이름의 속성이 있으면 B DB 에 정의된 한정해서 표시됨 그렇기에 A DB 에 있는 값이 옮겨졌다는 이유로 B DB 에 추가되지는 않음
      • 즉, 이전 DB 에서 A , B , C 를 정의 및 선택하고 이동하려는 DBA , B 만 정의되어 있다면 옮기기 후 A , B 만 보일 것입니다.
  • 속성 데이터가 지저분하면 CSV 로 뽑아서 가공해서 보는 방법이 있음

    • 헷갈리면 안 되는 것이 CSV데이터 스키마 에 해당하는 껍데기이므로 가공 후 import 하더라도 페이지에는 내용이 없음으로 CSV 로 가공 후 모든 것을 할 수 있다는 생각은 주의하기
  • 속성이 너무 많아진다 싶으면 보기 별로 export 해서 아카이브 처리 하는 방법도 있을 것

마치며

이런 고민을 통해 데이터 설계, 관리 방법에 대해 생각할 수 있었다.

단순한 해결 방법 중 하나지만 누군가는 Notion 을 사용하며 나와 같은 고민을 했을 수 있다.

이번 글을 통하여 해당 방법으로 해결하여 실제 사용 중인 사람이 있구나 공유되기를 바란다.


parkgang
태그 🏷