Ако погледнете първото си изявление
„...свойства на единобекта се мерит чрез различни източници ..."
всъщност можете да видите веднага, че вероятно търсите 3 маси. Източникът предлаганата от вас маса изглежда добре. Предлагам това Обект таблицата обаче прилича повече на
ObjectId
ObjectName
ObjectDescription
... other object details (except measurement)
Вашата трета таблица е вашето Измерване таблица, която може да изглежда така
MeasurementId
ObjectId - reference to Object table
SourceId - reference to Source table
DatePerformed
MeasurementValue
Success
Notes etc
Ползите тук са
- Че не е необходимо да имате конкретна колона във вашия Обект за конкретен Източник . Това става много трудно за поддържане, ако изведнъж имате повече източници.
- Не всички обекти нужда от стойност за всеки Източник , въпреки че с тази структура все още можете лесно да определите дали даден обект липсва измерване от конкретен източник.
- Можете да съхранявате множество измервания за обект (разделени чрез DatePerformed) и като използвате Max(DatePerformed) можете да извлечете последното измерване.
След това можете да получите списък с резултати, ако го направите
SELECT ObjectId, SourceId, DatePerformed, MeasurementValue
FROM Measurement
WHERE ObjectId = <your Object>
[AND/OR] SourceId = <your source>