Envoyé par
Appolonios
Mais on peut imaginer éventuellement deux commentaires, un au début et un à la fin qui correspondant aux deux passages de l'opérateur humain sur le site.
==> donc, nous avons :
Site(siteId, siteName, siteLong, siteLat, siteAlt)
Sensor(sensorId, sensorCapa, sensorVers)
Installation(instId, siteId #, sensorId #, instStartDate, instReboot, instCom)
InstallationEnd(instId #, instEndDate, instEndCom)
rawMeasurement(rmDate, instId #, rmVal)
Envoyé par
Appolonios
si NULL => 31/12/2500 arrangerait bien l'application
je dois manquer un peu d'expérience pour comprendre vraiment les problèmes que cela peut poser...
==> eh bien, dans la vue, si l'on précise "si NULL => 31/12/2500" (via un CASE, sans doute), alors nous avons toujours des bornes de fins > aux bornes de début, sachant que, si la borne de fin est NULL, cela veut dire que le capteur est toujours installé (31/12/2500 veut dire "infini", en quelque sorte) : plus besoin de tester la valeur NULL dans le trigger.
Pour l'instant, le tout est de savoir si tu es OK sur le principe. Ensuite, il faudrait proposer ton code SQL sur le forum adéquat (SQL Server, MySQL, Access, ...).
*********************
Juste un aparté
*********************
Il y a deux écoles :
1°/
donnant :
Site(siteId, siteName, siteLong, siteLat, siteAlt)
Sensor(sensorId, sensorCapa, sensorVers)
Installation(instId, siteId #, sensorId #, instStartDate, instEndDate, instReboot, instCom, instEndCom)
rawMeasurement(rmDate, instId #, rmVal)
2°/
donnant :
Site(siteId, siteName, siteLong, siteLat, siteAlt)
Sensor(sensorId, sensorCapa, sensorVers)
Installation(instId, siteId #, sensorId #, instStartDate, instReboot, instCom)
InstallationEnd(instId #, instEndDate, instEndCom)
rawMeasurement(rmDate, instId #, rmVal)
Personnellement, je fixe le refus des NULL pour les clés étrangères, pas pour les autres attributs. Mais l'autre école possède toute légitimité, bien entendu.
Partager