Se guardi la tua prima affermazione
"...proprietà di un singolo oggetto sono misurati tramite fonti diverse ..."
puoi effettivamente vedere subito che probabilmente stai cercando 3 tavoli. La Fonte il tavolo che proponi sembra a posto. Suggerisco quell'Oggetto la tabella sembra più simile a
ObjectId
ObjectName
ObjectDescription
... other object details (except measurement)
La tua terza tabella è la tua Misurazione tabella, che potrebbe plausibilmente assomigliare a questa
MeasurementId
ObjectId - reference to Object table
SourceId - reference to Source table
DatePerformed
MeasurementValue
Success
Notes etc
I vantaggi qui sono
- Che non devi avere una colonna specifica nel tuo Oggetto per una specifica Fonte . Questo diventa molto difficile da mantenere se improvvisamente hai più fonti.
- Non tutti gli Oggetti bisogno di un valore per ogni Fonte , sebbene con questa struttura sia ancora possibile determinare se a un Oggetto manca la Misurazione anche da una particolare fonte.
- Puoi memorizzare più misurazioni per un oggetto (separate tramite DatePerformed) e utilizzando Max(DatePerformed) puoi recuperare l'ultima misurazione.
Quindi puoi ottenere un elenco di risultati, se lo fai
SELECT ObjectId, SourceId, DatePerformed, MeasurementValue
FROM Measurement
WHERE ObjectId = <your Object>
[AND/OR] SourceId = <your source>