Als je naar je eerste verklaring kijkt
"...eigenschappen van een enkel object zijn gemeten via verschillende bronnen ..."
je ziet eigenlijk meteen dat je waarschijnlijk op zoek bent naar 3 tafels. De Bron tafel die je voorstelt ziet er goed uit. Ik stel voor dat Object tabel lijkt echter meer op
ObjectId
ObjectName
ObjectDescription
... other object details (except measurement)
Je derde tafel is je Meting tabel, die er mogelijk zo uit zou kunnen zien
MeasurementId
ObjectId - reference to Object table
SourceId - reference to Source table
DatePerformed
MeasurementValue
Success
Notes etc
De voordelen hier zijn
- Dat u geen specifieke kolom in uw Object hoeft te hebben voor een specifieke Bron . Dit wordt erg moeilijk vol te houden als je ineens meer bronnen hebt.
- Niet alle Objecten een waarde nodig voor elke Bron , hoewel u met deze structuur nog steeds eenvoudig kunt bepalen of een object een meting van een bepaalde bron mist.
- U kunt meerdere metingen opslaan voor een object (gescheiden via DatePerformed), en met Max(DatePerformed) kunt u de laatste meting ophalen.
Dan kun je een lijst met resultaten krijgen, als je dat doet
SELECT ObjectId, SourceId, DatePerformed, MeasurementValue
FROM Measurement
WHERE ObjectId = <your Object>
[AND/OR] SourceId = <your source>