Ho un client JSON JSON angolare che si interfaccia con uno stack JAVA/MySQL. Poiché MySQL è un RDBMS, tutti i miei dati sono normalizzati (le prime tre forme ovviamente).Normalizzazione vs DeNormalization quando si utilizza un client JSON con uno stack JAVA/RDBMS
La mia domanda può essere illustrata con il seguente esempio.
Ho un oggetto Example e un oggetto User restituito dal server.
Example - [{
userId:1,
...
...
..
},
{
userId:2,
...},
{
userId:3,
...}];
User - [
{
userId - 1,
firstName - "John",
lastName - "Doe",
..
},
{
userId - 2,
firstName - "Jane",
lastName - "Doe",
..
}, {...}...
]
Quando guardo attraverso la raccolta Esempio utilizzando "example_entry nell'esempio" angolare e visualizzare gli elementi di raccolta Esempio, ho solo l'userId prontamente disponibili. Ma se voglio visualizzare firstName e lastName, non posso farlo perché è in una diversa collezione "User". Devo scrivere un metodo di controllo/servizio angolare helper per ottenere il firstName, lastName dalla collezione User e legarlo con gli oggetti della collezione Example.
Per evitare questo problema, ho potuto De-normalizzare l'Ojbects Java e mando pronto per l'uso JSON come questo ..
Example - [{
userId:1,
firstName - "John",
lastName - "Doe",
...
...
..
},
{
userId - 2,
firstName - "Jane",
lastName - "Doe",
...},
{
userId:3,
...}];
Ma è terribile buono/cattivo /? Perché ora i miei oggetti dominio Java hanno firstName, LastName duplicati nell'oggetto di esempio e anche l'oggetto utente. Qualche consiglio su quale percorso è migliore?
De-Normalize and have ready to use JSON
Keep Data Normalized to avoid duplication and write converter methods on the Client as needed
Significa che dovrei lasciare le classi Java di backend come-è e scrivere metodi di supporto per convertire il JSON lato server in un JSON de-normalizzato? Grazie. – user6123723
Se si tratta di un elenco di dati, creare una vista con i campi obbligatori nel DB e interrogare semplicemente tramite il codice dell'app, senza alcuna trasformazione richiesta. Per un aggiornamento dell'entità \ scenari di aggiornamento dei dati inviare l'entità dati corretta invece di fare qualsiasi denormalizzazione su bakend – Chandermani
Ma non renderebbe lo storage db inefficiente con Denormalization? Ora se fName o lName cambiano, deve essere aggiornato in più di una posizione. Anche lo spazio di archiviazione utilizzato ora è più. Sono questi non-problemi? – user6123723