Si miras tu primera declaración
"...propiedades de un solo objeto se medin a través de diferentes fuentes ..."
De hecho, puede ver de inmediato que probablemente esté buscando 3 mesas. La fuente la mesa que propones se ve bien. Sugiero que Objeto mesa aunque se parece más a
ObjectId
ObjectName
ObjectDescription
... other object details (except measurement)
Tu tercera tabla es tu Medida mesa, que posiblemente podría verse así
MeasurementId
ObjectId - reference to Object table
SourceId - reference to Source table
DatePerformed
MeasurementValue
Success
Notes etc
Los beneficios aquí son
- Que no necesita tener una columna específica en su Objeto para una Fuente específica . Esto se vuelve muy difícil de mantener si de repente tienes más fuentes.
- No todos los Objetos necesita un valor para cada Fuente , aunque con esta estructura también puede determinar fácilmente si a un objeto le falta la medición de una fuente en particular.
- Puede tener varias medidas almacenadas para un objeto (separadas por DatePerformed), y usando Max(DatePerformed) puede recuperar la última medida.
Luego puede obtener una lista de resultados, si luego lo hace
SELECT ObjectId, SourceId, DatePerformed, MeasurementValue
FROM Measurement
WHERE ObjectId = <your Object>
[AND/OR] SourceId = <your source>