Dominio personalizzato o tabella di riferimento degli attributi o entrambi?

1

Sto progettando il mio primo vero database e sto valutando i pro e i contro di come applicare l'uniformità nei miei dati. La mia prima opzione è creare un dominio personalizzato e programmare la mia interfaccia utente per consentire solo determinate opzioni. La mia seconda opzione è creare una "tabella di riferimento attributi" che memorizzerebbe i valori consentiti. La mia UI potrebbe interrogare quella tabella per i valori consentiti e visualizzarli in una casella a cascata. O potrei fare entrambi

Il mio pensiero sul primo è che sarebbe più difficile mantenere l'interfaccia utente. Se il dominio dovesse cambiare, allora avrei bisogno di modificare l'interfaccia utente (a meno che non ci sia un modo per interrogare il dominio per i valori?). Non so se ci sia, ma il mio pensiero è che elaborerebbe e restituirà i risultati più velocemente di dover interrogare un secondo tavolo.

Una tabella degli attributi sembra utile in quanto posso progettare l'interfaccia utente per adattarla al volo, ma in modo meno ottimale nel senso che i valori dei dati non sono controllati dal DBMS e richiede una query aggiuntiva.

Fare entrambe le cose aggiungerebbe tutta la complessità, aumenterebbe i tempi di elaborazione e aumenterebbe la manutenzione dell'interfaccia utente.

    
posta NonSecwitter 22.06.2014 - 18:06
fonte

1 risposta

-1

Anche se nella domanda fornita mancano problemi specifici, cercherò di rispondere in un modo più generico su come progettare il database in base alla mia esperienza personale.

  • Il primo passo sarebbe identificare le entità e le loro relazioni.
  • Prova a normalizzare i dati in base alle regole di normalizzazione in modo che la struttura della tabella non consenta dati ridondanti e amp; la dipendenza dai dati ha senso Puoi prendere spunto su questo da Normalizzazione dei dati @ Wikipedia
  • Ora parlando di aspetti specifici è sempre una scelta o un compromesso tra mantenere le cose dinamiche e legarle nella struttura. Poiché il problema esatto non è menzionato, farò un esempio della mia scelta. Diciamo che vuoi inserire il nome di un paese e in base ad esso alcuni altri attributi e potrebbe essere dinamico. Ma dal momento che potrebbe esserci un numero FINITE di paesi, sarebbe sensato avere una tabella principale dei paesi i cui dati non cambiano e potresti usarlo come riferimento nei tuoi dati reali. Ma se dovessi avere una lista di N attributi con i tipi M (dove anche M è infinito come N, che di nuovo è una possibilità rara) dovresti andare con la precedente opzione fornita nella tua domanda.
  • Solo un suggerimento, la chiave qui sarebbe identificare i tipi di attributi / entità.
risposta data 25.06.2014 - 05:41
fonte

Leggi altre domande sui tag