Om du tittar på ditt första påstående
"...egenskaper för ett enda objekt är mätt via olika källor ..."
du kan faktiskt direkt se att du förmodligen letar efter 3 bord. Källan Tabellen du föreslår ser bra ut. Jag föreslår att Objekt tabell ser dock mer ut
ObjectId
ObjectName
ObjectDescription
... other object details (except measurement)
Ditt tredje bord är ditt mått bord, som kan tänkas se ut så här
MeasurementId
ObjectId - reference to Object table
SourceId - reference to Source table
DatePerformed
MeasurementValue
Success
Notes etc
Fördelarna här är
- Att du inte behöver ha en specifik kolumn i ditt Objekt för en specifik källa . Detta blir väldigt svårt att underhålla om man plötsligt har fler källor.
- Inte alla objekt behöver ett värde för varje källa , även om du med den här strukturen fortfarande kan avgöra om ett objekt saknar mätning från en viss källa också enkelt.
- Du kan ha flera mätningar lagrade för ett objekt (separerade via DatePerformed), och med Max(DatePerformed) kan du hämta den senaste mätningen.
Då kan du få en resultatlista, om du sedan gör det
SELECT ObjectId, SourceId, DatePerformed, MeasurementValue
FROM Measurement
WHERE ObjectId = <your Object>
[AND/OR] SourceId = <your source>