Skip to main content

Linee guida di modellazione

Chiavi e identificativi

  • Usare uuid per identificativi pubblici/API.
  • Usare bigint generated o uuid come primary key interna, da decidere per schema.
  • Evitare chiavi naturali come primary key.
  • Ogni tabella product-aware in schema condiviso deve avere application_code e tenant_id.

JSONB

Usare jsonb per:

  • artifact LLM;
  • raw extraction;
  • metadata provider;
  • payload eventi;
  • configurazioni flessibili;
  • campi di benchmark.

Non usare jsonb per dati core con query frequenti, vincoli o join stabili. In quel caso usare colonne relazionali.

Sicurezza e tenant

Il primo livello di enforcement resta applicativo tramite data-service.

PostgreSQL Row-Level Security e una opzione futura per rafforzare l'isolamento tenant/application a livello DB, soprattutto sugli schemi condivisi.

Migrazione da MySQL

La migrazione non deve essere un port meccanico MySQL -> PostgreSQL.

Ordine consigliato:

  1. creare schemi PostgreSQL target;
  2. portare prima rendicontazione;
  3. portare le tabelle platform minime;
  4. portare document metadata necessari;
  5. portare AI/document processing necessario al primo prodotto;
  6. lasciare le tabelle rAInty immobiliari nel vecchio DB finche il verticale non migra;
  7. introdurre test di compatibilita API prima di ogni cut-over.

Riferimenti