Qual è l'approccio migliore per l'aggiornamento di una colonna regolare non indicizzata (non una chiave primaria correlata) in tutte le tabelle che la contengono come duplicata?Come gestire una modifica dei dati denormalizzati
i.e l'utente pubblica qualcosa e quel post è duplicato in molte tabelle per il recupero veloce. Ma quando quel post cambia (con una modifica) deve essere aggiornato in tutto il database, in tutte le tabelle che contengono quel post (in tabelle che hanno chiavi primarie diverse e sconosciute).
Solutions sto pensando di:
- avere una tabella mapper per rintracciare le chiavi primarie in tutti quei tavoli, ma sembra condurre a tabelle di esplosione (post non è l'unica proprietà che potrebbe cambiare).
- Utilizzare Solr per eseguire la mappatura, ma temo che lo utilizzerei per lo scopo errato.
Qualsiasi illuminazione sarebbe apprezzata.
MODIFICA (schema fittizio).
Cosa succede se il post cambia? o anche il display_name dell'utente?
CREATE TABLE users (
id uuid,
display_name text,
PRIMARY KEY ((id))
);
CREATE TABLE posts (
id uuid,
post text,
poster_id uuid,
poster_display_name text
tags set<text>,
statistics map<int, bigint>,
PRIMARY KEY ((id))
);
CREATE TABLE posts_by_user (
user_id uuid,
created timeuuid,
post text,
post_id uuid,
tags set<text>,
statistics map<int, bigint>,
PRIMARY KEY ((id), created)
);
Se è possibile aggiungere uno schema di tabella che sarebbe utile. –
Aggiunto uno schema fittizio .. – Droritos
Dovremmo cambiare il titolo in "dati denormalizzati" invece di "dati duplicati"? –