글 하나를 행으로, 제목을 열로 둡니다.
행은 글 하나, 회원 하나처럼 개체 하나다. 열은 그 개체의 속성이다. 제목, 본문, 만든 시각이 열이다.
create table posts (
id bigint generated always as identity primary key,
title text not null,
body text,
created_at timestamptz not null default now()
);
text는 글자, timestamptz는 시간대 있는 시각이다.not null은 비울 수 없다. body는 비어도 된다.default now()는 값을 안 주면 지금 시각을 넣는다.id는 그 행을 가리키는 번호다. generated always as identity는 넣을 때마다 Postgres가 1, 2, 3으로 매긴다. primary key는 그 값이 표 안에서 중복되지 않고, 비지 않는다는 뜻이다.
Supabase가 만든 테이블은 id를 uuid로 두는 경우가 많다. 사람이 세는 번호 대신 충돌하기 어려운 식별자다. 역할은 같다. 행을 하나만 집어 내는 열이다.
같은 표를 Next.js에서 부를 때는 Supabase · 읽기·쓰기의 .from('posts')가 이 테이블이다.