왼쪽은 노션에서 보이는 모습, 오른쪽은 데이터베이스에 실제로 저장된 모습입니다.
오른쪽 표는 Supabase에서 바로 읽어 온 값입니다.
데이터베이스에 연결하지 못했습니다
Supabase 연결 정보가 없거나 잠시 응답하지 않습니다. 설정 방법은 README 의 “Supabase” 항목을 참고하세요.
이름만 다를 뿐 같은 일을 합니다.
개발자와 이야기할 때 이 표 한 장이면 대부분 통합니다.
노션에서 롤업 속성을 만들며 고르는 세 가지(어느 관계형으로, 무엇을, 어떻게 계산할지)가 오른쪽 글에 그대로 들어 있습니다. 읽을 줄 몰라도 괜찮습니다. 노션이 이 일을 대신 해 준다는 것만 보면 됩니다. 완료 비율 줄은 읽기 쉽게 줄여 쓴 것이고, 실제로 실행하는 글은 저장소의 supabase/schema.sql 에 있습니다.
select p.name as 프로젝트, count(t.id) as 업무_개수, 완료인_업무 / 전체_업무 * 100 as 완료_비율, max(t.due) as 가장_늦은_마감일 from projects p -- 관계형: 번호가 같은 것끼리 잇기 left join tasks t on t.project_id = p.id -- 롤업: 프로젝트마다 묶어서 세기 group by p.name
업무 데이터베이스에서 프로젝트 속성을 열고, 프로젝트 데이터베이스에도 같은 관계가 보이는지 봅니다. DB로 치면 tasks 쪽에만 번호가 저장되고, 프로젝트 쪽 목록은 그 번호를 거꾸로 찾아 보여주는 것입니다.
업무 표에 필터를 추가해 프로젝트가 비어 있는 줄만 봅니다. 이 줄들은 어느 롤업에도 세어지지 않습니다. 위 데모의 성과 리뷰 미팅과 같은 상태입니다.
찾은 업무에 프로젝트를 지정하면, 프로젝트 쪽 개수와 완료 비율이 바로 바뀝니다. 롤업은 저장된 숫자가 아니라 열 때마다 다시 세는 값이기 때문입니다. 위 SQL도 똑같이 동작합니다.
진짜 DB가 더 좋은 도구라는 뜻이 아닙니다.
쓰는 사람과 쓰는 방식이 다를 뿐입니다.
노션이 느려지는 행 수는 속성 수와 롤업·수식 개수에 따라 달라서 정해진 기준이 없습니다. 위 숫자는 대략적인 감입니다.
이 페이지가 도움이 됐나요?