Mysql
 sql >> Database >  >> RDS >> Mysql

Memorizzazione di revisioni di oggetti relazionali in modo efficiente

Se questo è puramente per scopi di "archivio", forse è meglio una tabella separata per le revisioni.

Tuttavia, se è necessario trattare le revisioni precedenti allo stesso modo delle revisioni correnti (ad esempio, se si desidera offrire agli utenti la possibilità di ripristinare un prodotto su una revisione precedente), probabilmente è meglio mantenere un'unica tabella prodotti, piuttosto che copiare i dati tra i tavoli. Se sei preoccupato per le prestazioni, ecco a cosa servono gli indici.

È possibile creare una chiave primaria composta per la tabella dei prodotti, ad es. PRIMARY KEY (product_id, revision) . Forse un processo memorizzato per trovare la revisione corrente, selezionando la riga con la revision più alta per un particolare product_id —sarà utile.