Cette question est en relation avec another question I asked. Dans mon autre question, je demande aux gens des opinions sur 3 différentes façons de construire une base de données. La façon plus propre que je peux penser à le faire sans (presque) répéter des tables et des notions étranges tels que « super tables » est l'option 2:Jusqu'où aller avec les contraintes de base de données?
Location [Table]
- Id
- Name
- HasLogger
- LoggerRFID
- LoggerUpperLimit
- LoggerLowerLimit
Sensor [Table]
- Id [PK]
- LocationId [FK]
- UpperLimit
- LowerLimit
SensorReading [Table]
- Id [PK]
- SensorId [FK]
- Value
LoggerReading [Table]
- LocationId [FK]
- Value
Alert [Table]
- Id [PK]
AlertCorrectiveAction [Table]
- AlertId [FK]
- CorrectiveActionId [FK]
- ByUserId [FK]
AlertAcknowledgement [Table]
- AlertId [FK]
- ByUserId [FK]
SensorAlertReading [Table]
- AlertId [FK]
- SensorReadingId [FK]
LoggerAlertReading [Table]
- AlertId [FK]
- LoggerReadingId [FK]
Maintenant, le problème avec cette option est qu'il permet des lectures de capteurs multiples et plusieurs emplacements à "lier" à une seule alerte.
développiez pourquoi est-ce un problème, je vais vous expliquer comment le système fonctionne:
Un emplacement peut contenir de nombreux « capteurs en direct », mais seulement 1 enregistreur. Pour cette raison, j'ai mis les attributs du consignateur dans la table de localisation (il s'agissait d'une relation de 1 à 1). Un enregistreur collecte les mesures jusqu'à ce qu'elles soient collectées ultérieurement, les capteurs en direct communiquent immédiatement les données via un réseau et possèdent des attributs supplémentaires, tels que les esclaves réseau ayant des attributs d'adresse réseau, ce qui est assez différent des enregistreurs. ne fonctionne pas bien).
Lorsqu'un capteur ou un enregistreur est hors de portée (indiqué par la lecture), le système génère une alerte. L'alerte concerne uniquement ce capteur et est considérée comme active jusqu'à ce que la lecture de ce capteur (ou enregistreur) indique qu'il est de nouveau dans la plage. Jusqu'à ce moment-là, les relevés qui éloignent le capteur sont «liés» à cette même alerte. Comme vous pouvez le voir, une seule alerte ne devrait vraiment avoir que des lectures pour le même capteur qui y est lié, mais ma conception ci-dessus permet d'associer une lecture différente de différents capteurs et enregistreurs à la même alerte - devrais-je être dérangé? que je n'ai pas contraint cela en quelque sorte? L'autre problème est qu'il permet aux alertes d'exister sans aucune lecture.
D'où ma question; Jusqu'à quel point faut-il aller avec des contraintes ou plier un design pour s'adapter à ces contraintes? J'aime la conception ci-dessus parce que c'est simple - les alertes peuvent avoir des lectures de capteur et des lectures d'enregistreur, donc c'est une relation simple pour les relier.
Je ne peux pas m'empêcher de penser qu'il me manque aussi un truc - y a-t-il une bien meilleure façon de faire ce design? J'ai tourné en rond avec lui depuis des lustres maintenant et il semble toujours y avoir un compromis (à moins que je répète tous les tableaux d'alerte pour les différents types de lecture).
Merci.
Merci pour votre réponse - J'ai lu votre autre réponse aussi et laissé un commentaire sur le fait de ne pas pouvoir voir le modèle. Je vais attendre jusqu'à ce que j'ai vu cela avant de répondre complètement. Pour répondre à l'une de vos questions (3) - Les capteurs n'ont pas de RFID (Radio Frequency Id) car ils sont liés au système d'une manière différente. Je vais continuer dans un nouveau commentaire. – Mark
Fondamentalement, ils sont deux façons de surveiller un emplacement; Retrospectivelly à travers un enregistreur de données alimenté par batterie autonome, ou en direct via un système de réseau. Le système de réseau se compose d'une unité de surveillance de réseau et d'esclaves de réseau. Les esclaves du réseau sont reliés à l'unité de surveillance du réseau via la signalisation réseau. Les esclaves du réseau peuvent chacun avoir deux capteurs attachés (bien que ce sera plus tôt). Un emplacement peut avoir plusieurs de ces capteurs pour permettre la surveillance en direct de l'air, de l'eau, de l'humidité, etc. – Mark
Les capteurs qui se branchent sur un seul esclave réseau via des câbles peuvent aller à différents endroits, donc les esclaves réseau ne sont pas limités aux emplacements. au lieu d'un emplacement "contenant" un esclave réseau, il contient un ensemble de capteurs. J'espère que cela clarifie un peu les choses. – Mark