sql >> Database >  >> RDS >> Mysql

Strategie om meerdere bestanden in een enkele tabel toe te wijzen aan een enkel veld in een andere tabel

Als je naar je eerste verklaring kijkt

"...eigenschappen van een enkel object zijn gemeten via verschillende bronnen ..."

je ziet eigenlijk meteen dat je waarschijnlijk op zoek bent naar 3 tafels. De Bron tafel die je voorstelt ziet er goed uit. Ik stel voor dat Object tabel lijkt echter meer op

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

Je derde tafel is je Meting tabel, die er mogelijk zo uit zou kunnen zien

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

De voordelen hier zijn

  • Dat u geen specifieke kolom in uw Object hoeft te hebben voor een specifieke Bron . Dit wordt erg moeilijk vol te houden als je ineens meer bronnen hebt.
  • Niet alle Objecten een waarde nodig voor elke Bron , hoewel u met deze structuur nog steeds eenvoudig kunt bepalen of een object een meting van een bepaalde bron mist.
  • U kunt meerdere metingen opslaan voor een object (gescheiden via DatePerformed), en met Max(DatePerformed) kunt u de laatste meting ophalen.

Dan kun je een lijst met resultaten krijgen, als je dat doet

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



  1. Exporteer MySQL-gegevens naar Excel in PHP

  2. Voer een SQL-query uit bij het opstarten van de MySQL-service

  3. Query's dynamisch maken in rails

  4. MYSQL - Onmogelijk om een ​​externe sleutel te maken