JSON vs chiavi esterne

1

Sto sviluppando un sito Web aziendale e devo definire alcune sezioni come questa:

  • Ho molte sezioni e ogni sezione ha molte (o una) sotto-pagine.
  • Il numero di pagine secondarie varia in base alla sezione.
  • Ogni sottopagina non deve contenere più di 2500 caratteri

Inoltre, devo usare un database relazionale (MySQL).

Sono in dubbio quale sarebbe il migliore in termini di design e / o prestazioni:

  1. Per memorizzare una matrice JSON , con tutte le sottopagine come oggetto, come una singola colonna della tabella Sections ;

  2. Per creare una tabella Sub-pages che fa riferimento alla sezione padre di un Foreign Key .

posta Rittmeyer 20.05.2013 - 11:26
fonte

2 risposte

8

Vorrei andare con 2.

create a table Sub-pages which references it's parent section by a Foreign Key

Quando si devono fare tali sezioni Le pagine secondarie sono cose simili, quindi vorrei creare tabelle separate in modo che diventino più efficienti nell'organizzazione dei dati.

C'è uno scenario che so che vorrei dirti. Se si memorizzano tutte le sottopagine come oggetto in una colonna di una tabella di sezione, diventa più complicato in termini di mantenimento. Quando qualcuno vuole modificare i contenuti, devi leggere tutti quei dati e poi fare il calcolo con gli indici e così via. Onestamente, lo considererei un cattivo design. E poi le prestazioni saggi funzionano, ma potrebbe richiedere un po 'di tempo nella lettura stessa. Quindi, meglio attenersi alla seconda utilizzando i migliori modelli relazionali con RDBMS. Spero che questo ti aiuti.

    
risposta data 20.05.2013 - 11:56
fonte
2

È importante che il tuo modello e il tuo DB utilizzino lo stesso paradigma, altrimenti hai troppa "perdita di attrito". Quindi, se i tuoi dati non si adattano allo schema relazionale, potresti prendere in considerazione di passare a un DB NoSQL (come Mongo DB).

    
risposta data 20.05.2013 - 14:11
fonte

Leggi altre domande sui tag