Jika Anda melihat pernyataan pertama Anda
"...properti dari satu objek diukur melalui sumber different yang berbeda ..."
Anda benar-benar dapat melihat langsung bahwa Anda mungkin mencari 3 tabel. Sumber tabel yang Anda usulkan terlihat baik-baik saja. Saya menyarankan agar Objek tabel meskipun lebih mirip
ObjectId
ObjectName
ObjectDescription
... other object details (except measurement)
Tabel ketiga Anda adalah Pengukuran tabel, yang mungkin terlihat seperti ini
MeasurementId
ObjectId - reference to Object table
SourceId - reference to Source table
DatePerformed
MeasurementValue
Success
Notes etc
Manfaat di sini adalah
- Bahwa Anda tidak perlu memiliki kolom tertentu di Objek untuk Sumber tertentu . Ini menjadi sangat sulit untuk dipertahankan jika Anda tiba-tiba memiliki lebih banyak sumber.
- Tidak semua Objek membutuhkan nilai untuk setiap Sumber , meskipun dengan struktur ini Anda masih dapat menentukan apakah Obyek hilang Pengukuran dari sumber tertentu juga dengan mudah.
- Anda dapat menyimpan beberapa pengukuran untuk suatu objek (dipisahkan melalui DatePerformed), dan menggunakan Max(DatePerformed) Anda dapat mengambil pengukuran terbaru.
Kemudian Anda bisa mendapatkan daftar hasil, jika Anda melakukannya
SELECT ObjectId, SourceId, DatePerformed, MeasurementValue
FROM Measurement
WHERE ObjectId = <your Object>
[AND/OR] SourceId = <your source>