tabelle di database per le voci di un altro tavolo?
Domanda
Sto progettando una nuova revisione della mia applicazione Java (utilizzando un database incorporato H2) attorno ad una riprogettazione del modo in cui sarò maneggiando i miei dati. Ecco come l'ho programmato:
- Voci tavolo-
- Articolo con ID
- Nome della voce
- Proprietà tavolo-
- ID proprietà
- Nome proprietà
- (proprietà individuale) Valore tavolo-
- Valore ID
- Articolo con ID
- (colonne di valore ...)
- (ingresso individuale) Valore tavolo-
- Nome proprietà
- (proprietà individuale) valore ID
Ogni voce può avere più proprietà (tra cui proprietà multiple dello stesso tipo). Ogni struttura ha il suo modo di memorizzare i valori. Ho bisogno di cercare tutte le proprietà definite per una data di entrata, e forse tutte le voci per ogni determinata proprietà.
E 'questo un buon modo per farlo?
Modifica non sono sicuro ho spiegato bene ...
Soluzione
A mio parere, questo è un modo molto male per modellare i dati, ma questo è un modo torre d'avorio molto di guardare la situazione come non ho dovuto usare questo modello in pratica. Tra l'altro, si chiama l'approccio "Entità-attributo-valore". E la ragione non mi piace è perché è molto non-schema-come in quel funzionalità più SQL ha da replicare in qualche modo.
C'è sicuramente un tempo e un luogo per esso (come se si intende per modellare molti oggetti che hanno modelli diversi) o che hanno schemi che cambiano di frequente. Ma io personalmente penso che sia terribile.
Altri suggerimenti
Se ho capito bene, vorrei utilizzare incrocio o svincolo tabelle invece di quello che descritto.
Così si può creare una query per ottenere tutte le proprietà per Entery, o tutte le enteries per casa.
Sono d'accordo con Google sconosciuta. Questo è anche chiamato il effetto Inner-piattaforma .