10 tabelle che ogni SaaS deve avere:il blueprint
Le 10 tabelle che ogni SaaS deve avere: organizzazioni, utenti, membri, registro attività e altre, più il prompt da copiare che fa costruire tutto all'AI.
Le 10 tabelle che ogni SaaS deve avere alimentano il 90% delle app aziendali: organizzazioni, utenti, membri dell'organizzazione, la tua entità principale, categorie, relazioni, registro attività, file, notifiche e impostazioni. Non devi reinventare il database: cloni questa struttura, rinomini un paio di cose e rilasci. Ecco il blueprint completo, come si collegano le tabelle e il prompt da copiare e incollare che fa costruire tutto bene all'AI.
Una tabella non è niente di più spaventoso di un foglio di calcolo strutturato: ogni riga è una cosa (un task, un contatto, una fattura), ogni colonna è un'informazione su quella cosa. Se per te è una novità, parti da i database spiegati ai fondatori non tecnici e poi torna qui. Il punto di questo articolo è più semplice: non serve capire i database per progettarne uno. Serve sapere quali tabelle creare, e sono quasi le stesse per ogni SaaS.
Le 10 tabelle che ogni SaaS deve avere
Un cattivo design del database rompe la tua app quando cresci. Un buon design significa che l'app semplicemente funziona. Ecco le fondamenta:
| # | Tabella | Cosa contiene | Perché ti serve |
|---|---|---|---|
| 1 | Organizzazioni | Ogni azienda che usa la tua app: nome, impostazioni, livello di abbonamento, stato | Multi-tenancy: ogni cliente è un'organizzazione |
| 2 | Utenti | Ogni persona che può fare login: email, nome, avatar (le password le gestisce Supabase) | Autenticazione: chi può accedere all'app |
| 3 | Membri dell'organizzazione | Quali utenti appartengono a quali organizzazioni, e con quale ruolo (owner, admin, member, viewer) | Un utente può appartenere a più organizzazioni |
| 4 | La tua entità principale | La cosa che la tua app gestisce: task, contatti, fatture, appuntamenti, prodotti | Questo È il tuo prodotto: tutto il resto lo supporta |
| 5 | Categorie / tag | Modi per raggruppare le tue entità principali, con nomi e colori | Gli utenti devono organizzare e filtrare le cose |
| 6 | Relazioni | Collegamenti molti-a-molti: task assegnati a più utenti, utenti in più team | La maggior parte delle relazioni reali non è uno-a-uno |
| 7 | Registro attività | Chi ha fatto cosa, quando, su quale record | Audit trail, feed delle attività, debugging, compliance |
| 8 | File | Riferimenti ai caricamenti: nome, URL, dimensione, chi l'ha caricato, a cosa è allegato | Quasi ogni app permette di caricare qualcosa |
| 9 | Notifiche | Avvisi per gli utenti: messaggio, tipo, stato di lettura, link | Gli utenti devono sapere quando succedono le cose |
| 10 | Impostazioni | Impostazioni dell'organizzazione (fuso orario, valuta) e preferenze dell'utente (tema, lingua) | Ogni utente vuole personalizzare la propria esperienza |
Nota quanto poco di tutto questo sia specifico della tua idea. Il 90% del tuo database è identico a quello di ogni altra app aziendale; il 10% è la tua logica di business unica. Parti dal 90%, costruisci il 10%, rilascia il tuo prodotto.
Il libroThe Solopreneur RevolutionLuis Gonçalves su come costruire un'attività da solopreneur con l'IA mentre sei ancora dipendente.Scopri il libro →Come si collegano le tabelle
Pensa a un condominio. Le organizzazioni sono il registro dell'edificio: l'elenco degli inquilini. Gli utenti sono i residenti. I membri dell'organizzazione sono la rubrica degli appartamenti che dice che Marco abita nell'interno 5 e Sara nell'interno 12. Da lì la catena è logica: un'organizzazione ha molte entità principali (task, contatti, fatture), a ciascuna possono essere allegati dei file, ogni azione genera una voce nel registro attività e gli eventi importanti creano notifiche.
Un esempio concreto: un semplice CRM richiede organizzazioni (i tuoi clienti), utenti (le persone che fanno login), membri dell'organizzazione (Marco lavora in un'azienda, Sara in un'altra), contatti (i record del CRM), tag dei contatti (lead caldo, lead freddo, cliente), un registro attività (ogni interazione), file (documenti allegati ai contatti), notifiche (avvisi quando un contatto compie un'azione) e impostazioni (preferenze per organizzazione). Fine. Nove tabelle. Un CRM completo.
È anche per questo che progettare le tabelle prima di costruire le schermate funziona così bene: tutta la tesi dello sviluppo database-first. Le schermate cambiano ogni settimana. Questa struttura non cambia quasi mai.
Le tabelle che non servono al lancio
Importante quanto le dieci che costruisci: quelle che salti. Aggiungile dopo, quando ti servono davvero:
- Fatturazione e abbonamenti: aggiungili quando sei pronto a far pagare
- Team: aggiungili quando le organizzazioni diventano grandi
- Integrazioni: aggiungile quando ti colleghi ad altri strumenti
- Report: aggiungili quando gli utenti hanno bisogno di analytics
- Webhook: aggiungili quando costruisci un'API
- Audit log: aggiungili per esigenze di compliance e sicurezza
La regola: parti in piccolo, aggiungi tabelle quando servono. Il database è un livello di un quadro più grande, i 18 sistemi che ogni SaaS deve avere mappa il resto, ma le tabelle sono il punto di partenza, perché tutto il resto poggia su di esse.
Il prompt da copiare e incollare che costruisce tutte e 10
Questo SQL non lo scrivi tu. Dai all'AI il blueprint e i requisiti di qualità in un unico prompt:
Crea queste tabelle di database per un [tipo della tua app] multi-tenant:
FONDAMENTA: 1. organizations (id, name, slug, settings, tier, is_active, created_at, updated_at) · 2. users (gestiti da Supabase Auth) · 3. organization_members (organization_id, user_id, role)
FUNZIONE PRINCIPALE: 4. [la tua entità principale] con organization_id, i tuoi campi specifici, colonne di audit
DI SUPPORTO: 5. categories (per organizzare [la tua entità principale]) · 6. files (allegati) · 7. activity_log (tracciamento di tutte le azioni) · 8. notifications (avvisi per gli utenti) · 9. settings (preferenze)
Requisiti: ogni tabella ha bisogno di organization_id (tranne users) · aggiungi indici su tutte le chiavi esterne · abilita il Row-Level Security · usa i soft delete (colonna deleted_at) · aggiungi colonne di audit (created_at, created_by, updated_at, updated_by)
Mostrami la migration SQL completa.
L'AI genererà le tabelle, collegate correttamente, multi-tenant, pronte per la produzione. Il blocco dei requisiti non è una decorazione facoltativa: organization_id su ogni tabella e il Row-Level Security sono ciò che impedisce al Cliente A di vedere i dati del Cliente B.
Il minimo per rilasciare
Prima di iniziare a costruire funzionalità, verifica di avere: una tabella organizzazioni, gli utenti (li fornisce Supabase), i membri dell'organizzazione, la tua entità principale, almeno un modo per organizzare gli elementi, un registro attività e le notifiche. Con queste 7 tabelle minime puoi costruire e rilasciare. Aggiungi il resto man mano che cresci.
La maggior parte dei fondatori passa settimane a tormentarsi sul design del database come se la propria app fosse un fiocco di neve unico. Non lo è, e questa è la buona notizia. Le fondamenta sono un problema risolto. Clonale, personalizza il 10% e spendi le tue energie sulla parte che solo tu puoi costruire.
12 settimaneLa carriera aziendale non è mai stata il pianoCandidati al Solopreneur Accelerator.Candidati ora →Domande frequenti
Mi servono davvero tutte e 10 le tabelle prima del lancio?
No: 7 sono il minimo: organizzazioni, utenti, membri dell'organizzazione, la tua entità principale, un modo per organizzare gli elementi (categorie o tag), un registro attività e le notifiche. File, relazioni e impostazioni possono arrivare con le funzionalità che ne hanno bisogno. Fatturazione, team, integrazioni, report e webhook arrivano ancora più tardi.
Cosa significa "multi-tenant" e perché conta?
Multi-tenant significa che molti clienti condividono un'unica app, ma ognuno vede solo i propri dati. È il motivo per cui la tabella delle organizzazioni viene per prima e per cui ogni tabella porta un organization_id. Insieme al Row-Level Security, garantisce che i record di ogni cliente restino dentro le proprie mura, come gli appartamenti di un unico edificio.
L'AI può davvero progettare il mio database al posto mio?
Sì, se le dai il blueprint. Incolla il prompt qui sopra con la tua entità principale compilata e l'AI produce la migration SQL completa: tabelle, chiavi esterne, indici e Row-Level Security. Quello che l'AI non può fare è decidere qual è la tua entità principale. Quella è una decisione di prodotto, non tecnica.
Qual è l'"entità principale" della mia app?
L'unica cosa che la tua app gestisce. Task manager → task. CRM → contatti. Fatturazione → fatture. Prenotazioni → appuntamenti. E-commerce → prodotti. Se non riesci a nominarla in una parola, non hai ancora definito il tuo prodotto abbastanza bene: risolvi questo prima di toccare il database.
Quanto sei intrappolato, davvero?
Fai l'Indice di Soffocamento Aziendale, la valutazione gratuita per capire se sei pronto a diventare solopreneur.