Nếu bạn nhìn vào tuyên bố đầu tiên của mình
"... thuộc tính của một đối tượng được đo lường qua các nguồn khác nhau ... "
bạn thực sự có thể thấy ngay rằng bạn có thể đang tìm kiếm 3 bảng. Nguồn bảng bạn đề xuất trông ổn. Tôi đề nghị rằng Đối tượng bảng mặc dù trông giống hơn
ObjectId
ObjectName
ObjectDescription
... other object details (except measurement)
Bảng thứ ba là Phép đo của bạn bảng, có thể hình dung như thế này
MeasurementId
ObjectId - reference to Object table
SourceId - reference to Source table
DatePerformed
MeasurementValue
Success
Notes etc
Những lợi ích ở đây là
- Điều đó bạn không cần phải có một cột cụ thể trong Đối tượng của mình cho một Nguồn cụ thể . Điều này trở nên rất khó duy trì nếu bạn đột nhiên có nhiều nguồn hơn.
- Không phải tất cả Đối tượng cần một giá trị cho mỗi Nguồn , mặc dù với cấu trúc này, bạn vẫn có thể dễ dàng xác định xem một Đối tượng có bị thiếu Phép đo từ một nguồn cụ thể hay không.
- Bạn có thể lưu trữ nhiều phép đo cho một đối tượng (được phân tách qua DatePerformed) và sử dụng Max (DatePerformed), bạn có thể truy xuất phép đo mới nhất.
Sau đó, bạn có thể nhận được danh sách kết quả, nếu bạn làm như vậy
SELECT ObjectId, SourceId, DatePerformed, MeasurementValue
FROM Measurement
WHERE ObjectId = <your Object>
[AND/OR] SourceId = <your source>