Conventions
Naming des schémas, colonnes, policies RLS, helpers auth, index. Des conventions stables et documentées pour que votre équipe ait une seule façon de nommer les choses.
6 min de lecture·Niveau débutant·Révisé le 15 avr. 2026
Chaque projet reçoit quatre sous-schémas préfixés project_{uuid}. Vos tables métier vont dans le schéma principal ; ne créez jamais d'objets dans les schémas système.
- Tables au pluriel :
posts,comments,invoices - Colonnes en
snake_case:created_at,user_id,last_seen_at - Clés primaires
id uuid primary key default gen_random_uuid()— pas deuuid_generate_v4() - Timestamps
timestamptz, jamaistimestampnu - FKs suffixées
_id:author_id,tenant_id - Booléens préfixés
is_ouhas_ - Pas de colonne
project_id— le schéma est déjà l'isolant
Attention
Ne jamais ajouter de colonne
project_id. L'isolation est déjà garantie par le schéma. Une colonne tenant multiplierait les index et fragiliserait la sécurité.Le gateway ouvre les connexions Postgres avec request.jwt.claims renseigné. Les trois helpers ci-dessous lisent ces claims et sont utilisables partout dans vos policies.
Convention : <table>_<scope>_<operation>. Exemple : posts_own_read, orders_admin_delete. Toujours préciser to authenticated ou to anon.
- Nom :
idx_<table>_<colonnes>ouuq_<table>_<colonnes>(unique) - Toujours indexer : les FKs, les colonnes de
filter/order_byfréquents, leswheredes policies RLS - Ne pas indexer : colonnes booléennes à forte cardinalité low (utiliser partial index), tables < 1000 lignes
- pgvector :
using hnswpour > 100k vecteurs,ivfflatsinon
Dernière mise à jour · 15 avr. 2026