Organisation des schémas
Statut
Document de cadrage data — version initiale.
Objectif
L'organisation des schémas doit rendre la base compréhensible, évolutive et sûre.
Elle doit aussi clarifier la frontière entre les données historiques Supabase et la cible Laravel API centrale.
État actuel visible
Les migrations visibles utilisent principalement le schéma par défaut, notamment côté Supabase public.
Les migrations Laravel créent des tables par domaines fonctionnels, sans schémas PostgreSQL séparés confirmés dans le code inspecté.
Organisation logique cible
Même si les tables restent dans un même schéma physique, elles doivent être organisées logiquement par domaines :
| Domaine | Exemples de tables |
|---|---|
| Identité | profiles, users_roles, personal_access_tokens. |
| Territoire | communes, commune_elus, commune_collectes, commune_infos. |
| Acteurs | acteurs, tags, acteur_tags, documents, claims. |
| Publications | publications, type_publications, publication_communes, publication_reports. |
| Communauté | contributors, contributor_favoris, groupes, groupe_membres. |
| Monétisation | subscription_plans, actor_subscriptions, boosts, boost_catalog. |
| Apps | playloop_, assosuite_, mairie_, chat_. |
| Technique | cache, jobs, settings, analytics. |
Principes
- Préfixer clairement les tables applicatives spécialisées si nécessaire.
- Garder les relations lisibles.
- Ne pas mélanger utilisateurs et acteurs.
- Distinguer données métier et données techniques.
- Documenter les tables partagées entre apps.
- Éviter les colonnes fourre-tout sans gouvernance.
Schémas physiques
La création de schémas PostgreSQL dédiés peut être envisagée plus tard, par exemple :
app;analytics;audit;ai.
Cette séparation n'est pas confirmée dans le code actuel et doit rester une vision cible.
Points à clarifier
- Faut-il conserver un seul schéma ou introduire des schémas dédiés ?
- Quelle nomenclature officielle pour les tables d'applications connectées ?
- Comment documenter les tables historiques Supabase ?
- Quelle source de vérité pour les relations entre domaines ?