PREMIUM

Template per Schema Database Relazionale e DDL

Serve a backend developer e data engineer che devono trasformare requisiti di dominio in uno schema dati solido. Concreto: descrivi le entita e le regole e ottieni il modello logico (tabelle con colonne, tipi, chiavi primarie/esterne, vincoli), l'elenco delle relazioni e degli indici e il DDL SQL eseguibile, con scelte di normalizzazione motivate.

#database #schema #normalizzazione #ddl #modello-dati

Esempio di output

# Schema database - [Dominio]

## 1. Dizionario tabelle
### Tabella: clienti
| Colonna | Tipo | Vincoli | Descrizione |
|---|---|---|---|
| id | BIGINT | PK, auto-increment | Identificativo |
| email | VARCHAR(255) | NOT NULL, UNIQUE | Email cliente |
| creato_il | TIMESTAMP | NOT NULL DEFAULT now() | Data creazione |

### Tabella: ordini
| Colonna | Tipo | Vincoli | Descrizione |
|---|---|---|---|
| id | BIGINT | PK | Identificativo |
| cliente_id | BIGINT | FK -> clienti(id), NOT NULL | Cliente |
| totale | DECIMAL(10,2) | NOT NULL, CHECK (totale >= 0) | Importo |

## 2. Relazioni
- clienti 1 --- N ordini (un cliente ha molti ordini)

## 3. Indici
- idx_ordini_cliente_id su ordini(cliente_id) - join frequenti

## 4. Note di normalizzazione
Schema in 3NF. Nessuna denormalizzazione.

## 5. DDL (PostgreSQL)
```sql
CREATE TABLE clienti (
  id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  email VARCHAR(255) NOT NULL UNIQUE,
  creato_il TIMESTAMP NOT NULL DEFAULT now()
);
CREATE TABLE ordini (
  id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  cliente_id BIGINT NOT NULL REFERENCES clienti(id),
  totale DECIMAL(10,2) NOT NULL CHECK (totale >= 0)
);
CREATE INDEX idx_ordini_cliente_id ON ordini(cliente_id);
```

Domande frequenti

Normalizza davvero lo schema?

Si: progetta almeno in terza forma normale (3NF) eliminando ridondanze e dipendenze transitive, e segnala esplicitamente eventuali denormalizzazioni proposte con la relativa motivazione (es. performance di lettura).

Genera DDL eseguibile?

Si: produce CREATE TABLE con tipi, PRIMARY KEY, FOREIGN KEY, vincoli NOT NULL/UNIQUE/CHECK e indici, per il dialetto SQL che indichi (es. PostgreSQL/MySQL). Se non lo indichi usa SQL ANSI e lo segnala.

Inventa entita o campi non richiesti?

No: modella solo le entita e gli attributi che derivano dai requisiti forniti. Dove un tipo o una cardinalita non e chiaro usa [DA CHIARIRE] invece di assumere.

Vuoi un template su misura?

Costruiscine uno in poche domande — con la struttura corretta per il tuo standard.

Crea il tuo template