La base de données est le cœur de toute application Supabase. Puisque Supabase repose sur PostgreSQL, tu disposes d’une base de données relationnelle complète avec toute la puissance de SQL.
Si tu démarres avec Supabase, consulte d’abord notre guide complet Supabase. Pour comprendre les composants sous-jacents, lis notre article sur l’architecture Supabase. Pour travailler en local, voir installer Supabase en local avec Docker.
Créer ta première table
CREATE TABLE articles (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
title TEXT NOT NULL,
slug TEXT UNIQUE NOT NULL,
status TEXT DEFAULT 'draft' CHECK (status IN ('draft', 'published', 'archived')),
author_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
Les types de données essentiels
- UUID : identifiants uniques — préfère
gen_random_uuid() - TEXT : chaînes sans limite pratique
- NUMERIC(p,s) : montants financiers (évite les erreurs float)
- TIMESTAMPTZ : toujours préférer à TIMESTAMP
- JSONB : données JSON indexables
Modéliser les relations
One-to-Many
CREATE TABLE projects (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
owner_id UUID REFERENCES auth.users(id) ON DELETE CASCADE
);
Many-to-Many
CREATE TABLE articles_tags (
article_id UUID REFERENCES articles(id) ON DELETE CASCADE,
tag_id UUID REFERENCES tags(id) ON DELETE CASCADE,
PRIMARY KEY (article_id, tag_id)
);
Extension du profil utilisateur
CREATE TABLE profiles (
id UUID PRIMARY KEY REFERENCES auth.users(id) ON DELETE CASCADE,
username TEXT UNIQUE,
bio TEXT
);
Row Level Security : sécuriser dès la conception
ALTER TABLE articles ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Users see own articles" ON articles
FOR SELECT USING (auth.uid() = author_id);
Bonnes pratiques
- ✅ Toujours un UUID comme clé primaire
- ✅ TIMESTAMPTZ pour les dates, jamais TIMESTAMP
- ✅ Foreign keys explicites avec ON DELETE CASCADE
- ✅ NOT NULL par défaut
👉 Articles du guide Supabase
Cet article fait partie du Guide Complet Supabase 2026. Retrouvez les autres articles :
- ✅ Supabase : Le Guide Complet 2026
- ✅ Supabase vs Firebase : Comparatif Complet 2026
- ✅ Installer Supabase en Local avec Docker
- ✅ Supabase Pricing : Quel Plan Choisir en 2026
- ✅ Architecture Supabase : Postgres, GoTrue, Realtime et Storage
- 📅 Supabase RLS — à paraître le 08/06
- 📅 SQL, Triggers et Fonctions — à paraître le 10/06
- 📅 Supabase Migrations — à paraître le 12/06





