Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Strategia mapowania wielu pól w jednej tabeli do jednego pola w innej tabeli

Jeśli spojrzysz na swoje pierwsze oświadczenie

„...właściwości pojedynczego obiektumierzone za pośrednictwem różnych źródeł ..."

od razu widać, że prawdopodobnie szukasz 3 stołów. Źródło stół, który proponujesz, wygląda dobrze. Proponuję Obiekt tabela wygląda jednak bardziej jak

ObjectId
ObjectName
ObjectDescription
... other object details (except measurement)

Twój trzeci stół to Twój Pomiar stół, który mógłby wyglądać tak

MeasurementId
ObjectId - reference to Object table
SourceId - reference to Source table
DatePerformed
MeasurementValue
Success 
Notes  etc

Oto korzyści

  • Że nie musisz mieć określonej kolumny w swoim Obiektie dla konkretnego Źródła . Staje się to bardzo trudne do utrzymania, jeśli nagle masz więcej źródeł.
  • Nie wszystkie obiekty potrzebujesz wartości dla każdego Źródła , chociaż dzięki tej strukturze nadal można łatwo określić, czy w obiekcie brakuje pomiaru z określonego źródła.
  • Możesz przechowywać wiele pomiarów dla obiektu (oddzielonych za pomocą funkcji DatePerformed), a za pomocą funkcji Max(DatePerformed) możesz pobrać najnowszy pomiar.

Następnie możesz uzyskać listę wyników, jeśli to zrobisz

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. Nie można utworzyć serwera połączonego - serwer sql i mysql

  2. MySQL zaokrągla do najbliższych 5 centów

  3. Jak mogę uzyskać listę baz danych MySQL w PHP za pomocą PDO?

  4. Upuszczanie tabeli powoduje zawieszanie się MySQL

  5. Odśwież stronę PHP co predefiniowane sekundy