Qual è la migliore pratica per la memorizzazione di metadati di singoli record in un database?
Devo memorizzare metadati comuni come l'ora di creazione e l'ora dell'ultimo aggiornamento per molte tabelle nel mio database. Ho trovato alcune soluzioni diverse:
Memorizza i metadati direttamente nelle tabelle.
Professionisti:
- I metadati sono direttamente collegati ai record
- Non sono richiesti join per recuperare i metadati
Contro:
- Sono necessarie molte colonne duplicate (a meno che non venga utilizzata l'ereditarietà)
- I metadati e i dati aziendali non sono separati
Creare una tabella di metadati generale con e utilizzare chiavi esterne soft per collegare i dati alle tabelle e ai record corretti.
Professionisti:
- Nessuna duplicazione di colonne
- I metadati sono separati dai dati aziendali
Contro:
- Nessun collegamento diretto tra metadati e dati (gli FK non possono essere utilizzati)
- I join richiedono una condizione aggiuntiva
Crea singole metadati per ogni tabella che richiede metadati.
Professionisti:
- I metadati sono direttamente collegati ai record
- I metadati sono separati dai dati aziendali
Contro:
- Sono richiesti molti tavoli extra
- Sono necessarie molte colonne duplicate (a meno che non venga utilizzata l'ereditarietà)
Ci sono più opzioni, vantaggi o svantaggi di quelli che ho menzionato qui? E qual è la migliore pratica per la memorizzazione di questi metadati?
hstore
oJSON
potrebbe risolvere il tuo problema?