Mysql
 sql >> база данни >  >> RDS >> Mysql

Стратегия за съпоставяне на множество файлове в една таблица към едно поле в друга таблица

Ако погледнете първото си изявление

„...свойства на единобекта се мерит чрез различни източници ..."

всъщност можете да видите веднага, че вероятно търсите 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>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/mysql:Рангиране на потребителите по кликвания

  2. Как да картографирате битов тип в Mysql за хибернация?

  3. MySQL цели в работния процес на Luigi

  4. Команди не са синхронизирани; не можете да изпълните тази команда сега, докато извиквате съхранена процедура в Mysql

  5. Как мога да конвертирам този SQL израз в Django QuerySet?