Un ingegnere informatico esperto mi ha descritto un modello di progettazione di database in cui esistono tre tipi di tabelle: tabelle transazionali, tabelle associative e tabelle di definizione / tassonomia dei dati.
Come descritto, una tabella transazionale può memorizzare informazioni su un utente, un prodotto, ecc. Ad esempio, la tabella USER potrebbe avere colonne id, lastname, firstname, username, password, ecc. La tabella PRODUCT potrebbe avere id colonne , descrizione, prezzo, ecc.
Una tabella associativa viene utilizzata per creare relazioni molti-a-molti tra altre tabelle. Un esempio potrebbe essere una tabella per tenere traccia degli articoli nel carrello degli acquisti di ciascun utente. Potrebbe avere colonne product_id e user_id.
Una tabella di definizione dei dati contiene informazioni sulla definizione di colonne in altre tabelle. Ad esempio, potrebbe esistere una tabella per gli elenchi di algoritmi di hashing della password utilizzati per tutta la durata del database e la tabella USER potrebbe avere una colonna aggiuntiva come password_definition che punta a questa tabella. In questo modo, non aggiungiamo colonne come password_md5, password_sha256, password_hmac, ecc.
Il mio esempio è ideato solo per aiutare a descrivere questo modello. Non sto cercando consigli sull'esempio, ma informazioni sul modello di progettazione illustrato e in particolare sull'utilizzo di una tabella per descrivere i dati in un'altra tabella.
Questo tipo di progettazione di database ha un nome? Ci sono termini migliori per questi tipi di tabelle? Esistono best practice consolidate per quando dovrebbe o non dovrebbe essere utilizzato?