Il database con due tabelle

In questo articolo del 2012, si legge che Reddit avrebbe un database da due tabelle: https://kevin.burke.dev/kevin/reddits-database-has-two-tables/

Le due tabelle si chiamano “Cose” e “Dati” (i.e. attributi delle cose).

“Cose” contiene una riga per ogni oggetto del sistema (utenti, forum, ecc) e attributi base come il tipo e la data di creazione.

Dati è una relazione molti a uno con Cose e contiene dati in forma chiave, valore

Questo schema può sembrare un po’ strambo peró:

  1. Garantisce un sistema schemaless
  2. È facile fare query aggregate: per es “dammi tutti gli utenti che hanno acceduto negli ultimi x giorni”
  3. La manutenzione dello schema è zero.

Se il codice di middle tier che gestisce le operazioni CRUD su un oggetto X è centralizzato, per es su un microservizio, la mancanza di schema forte è accettabile.

I dati non sono denormalizzati ed è ancora possibile effettuare query su di essi.

Entro certi limiti, versioni diverse del software possono insistere sullo stesso database.

L’aggiunta di un attributo non è un problema

La cancellazione di un attributo su tutti gli oggetti di tipo X è sempre possibile e non crea inconsistenze di schema.

This entry was posted in Italian Content, Software and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.