Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chiến lược ánh xạ nhiều tệp trong một bảng với một trường trong bảng khác

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>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thay đổi kiểu dữ liệu Cột Bảng trên nhiều hơn 1 cột?

  2. SQL:Sử dụng GROUP BY và MAX trên nhiều cột

  3. BIGINT (8) có phải là số nguyên lớn nhất mà MySQL có thể lưu trữ không?

  4. Làm thế nào để đồng bộ hóa hai bảng của các cơ sở dữ liệu MySQL khác nhau trên cùng một máy?

  5. Làm cách nào để tìm nạp dữ liệu từ cơ sở dữ liệu trong bảng cứ sau 15 phút?