Pokud se podíváte na své první prohlášení
„...vlastnosti jednoho objektu jsou měřeny prostřednictvím různých zdrojů ..."
vlastně hned vidíte, že pravděpodobně hledáte 3 stoly. Zdroj vámi navrhovaný stůl vypadá dobře. Navrhuji tento Objekt tabulka vypadá spíše jako
ObjectId
ObjectName
ObjectDescription
... other object details (except measurement)
Vaše třetí tabulka je vaše Měření tabulka, která by mohla vypadat takto
MeasurementId
ObjectId - reference to Object table
SourceId - reference to Source table
DatePerformed
MeasurementValue
Success
Notes etc
Výhody zde jsou
- Že v Objektu nemusíte mít konkrétní sloupec pro konkrétní Zdroj . To se velmi obtížně udržuje, pokud máte najednou více zdrojů.
- Ne všechny Objekty potřebujete hodnotu pro každý Zdroj , i když s touto strukturou můžete stále snadno určit, zda objektu chybí měření z určitého zdroje.
- Pro objekt můžete uložit více měření (oddělených pomocí DatePerformed) a pomocí Max(DatePerformed) můžete získat nejnovější měření.
Potom můžete získat seznam výsledků, pokud to uděláte
SELECT ObjectId, SourceId, DatePerformed, MeasurementValue
FROM Measurement
WHERE ObjectId = <your Object>
[AND/OR] SourceId = <your source>