sql >> Databáze >  >> RDS >> Mysql

Strategie mapování více polí v jedné tabulce na jedno pole v jiné tabulce

Pokud se podíváte na své první prohlášení

„...vlastnosti jednoho objektu jsou měřeny prostřednictvím různých zdrojů ..."

vlastně hned vidíte, že pravděpodobně hledáte 3 stoly. Zdroj vámi navrhovaný stůl vypadá dobře. Navrhuji tento Objekt tabulka vypadá spíše jako

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

Vaše třetí tabulka je vaše Měření tabulka, která by mohla vypadat takto

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

Výhody zde jsou

  • Že v Objektu nemusíte mít konkrétní sloupec pro konkrétní Zdroj . To se velmi obtížně udržuje, pokud máte najednou více zdrojů.
  • Ne všechny Objekty potřebujete hodnotu pro každý Zdroj , i když s touto strukturou můžete stále snadno určit, zda objektu chybí měření z určitého zdroje.
  • Pro objekt můžete uložit více měření (oddělených pomocí DatePerformed) a pomocí Max(DatePerformed) můžete získat nejnovější měření.

Potom můžete získat seznam výsledků, pokud to uděláte

SELECT ObjectId, SourceId, DatePerformed, MeasurementValue
FROM Measurement
WHERE ObjectId = <your Object>
[AND/OR] SourceId = <your source>



  1. Maskování dat v DB aplikacích

  2. MySQL – Chyba připojení – [MySQL][Ovladač ODBC 5.3(w)]Hostitel „IP“ se nemůže připojit k tomuto serveru MySQL

  3. Databáze, která zvládne více než 500 milionů řádků

  4. Jak vybrat stránkování podle počtu N záznamů z databáze MySQL?