Bonjour,
J'ai un programme qui récupère régulièrement (toutes les 5 secondes) un grand nombre d'informations depuis un équipement. Ces informations (séparées en 3 groupes : data1, data2, data3) sont pour la plus part du temps identiques mais j'ai besoin d'avoir un historique de leurs changements.
Comme ces informations sont souvent identiques, je ne veux pas les enregistrer plusieurs fois en base données. C'est pourquoi, je pensais faire un hash pour chacun des groupes de données data1, data2 et data3 puis de les comparer lors de l'enregistrement.
Je pensais donc faire 5 tables :
- Une qui liste les équipements.
- Une pour le groupe de données data1 avec un champ "hash" qui contient le hash de l'ensemble des autre champs.
- Une pour le groupe de données data2 avec un champ "hash" qui contient le hash de l'ensemble des autre champs.
- Une pour le groupe de données data3 avec un champ "hash" qui contient le hash de l'ensemble des autre champs.
- Une pour la relation entre les équipements et les groupes de données avec un timestamp pour l'enregistrement et un timestamp pour chacun des groupes de données qui indique le timestamp de la dernière modification des données pour le groupe.
J'ai ensemble de données d'environ 2000 lignes à enregistrer toutes les 5 secondes qui contiennent le nom de l'équipement, ainsi que les données des groupes data1, data2 et data3 avec le hash calculé pour chacun des groupes.
Voici la structure des tables que je pensais faire mais je ne vois pas comment comment faire ma requête d'enregistrement par ce qu'il faut trouver l'ID d'un groupe de données si il existe déjà ou le créer si il n'existe pas, puis enregistrer l'ID correspondant aux bonnes données.
Avez-vous une idée ? peut être que la structure de données n'est pas appropriées.
Merci par avance.
Table "equipement" :
- id
- name
Table "data1" :
- id
- value1
- value2
- value3
- value4
- hash
Table "data2" :
- id
- value1
- value2
- value3
- value4
- hash
Table "data3" :
- id
- value1
- value2
- value3
- value4
- hash
Table "equipement_data" :
- id
- timestamp
- id_equipement
- data1_id
- data1_timestamp
- data2_id
- data2_timestamp
- data3_id
- data3_timestamp
Partager