Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2847 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  problème de contrainte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de contrainte

n°1786645
colfarell
Posté le 14-09-2008 à 18:11:44  profilanswer
 

station (   nomStation  ,  capacite ,   lieu ,   region ,   tarif )
activite(   nomStation ,   libelle ,   prix )
 
a partir de ces deux tables je voudrais appliquer une contrainte lors de la création de la table activité qui dit;
 
le prix de chaque activité doit être supérieur à zéro et inférieur au tarif de chaque station.
 
 
j'implémente ma bd sur sql server 2000
veuillez m'excuser car je suis débutant en bd  
comment faire  et merci de bien vouloir m'aider
   

mood
Publicité
Posté le 14-09-2008 à 18:11:44  profilanswer
 

n°1786847
olivthill
Posté le 15-09-2008 à 11:34:59  profilanswer
 

Question : Qu'est-il prévu si le prix est inférieur ?
 
- Message d'alerte dans un fichier.
- ou boite d'alerte sur l'écran de l'utilisateur
- ou boite d'alerte sur l'écran d'un administrateur
- ou rejet de la saisie sans rien dire
- ou autre ?
 
Le plus simple est d'inclure cette condition dans le programme de saisie, aevc une petite vérification de la validté des données lors de l'appui sur le bouton "OK" ou "Enregistrer".
 
Un principe, que privilégie beaucoup d'informaticiens dont votre serviteur, consiste à séparer les données et les traitements. Autrement dit, à ne pas mettre de contraintes dans la base données, mais plutôt dans les programmes d'accès à la base. Cela offre plus de souplesse. Par exemple, cela permet de charger la tables des activités sans être bloqué parce que la table des stations n'existerait pas encore ou serait temporairement mauvaise. Faire ces chargements est utile pour faire des tests, ou pour récupérer une situation antérieure en cas de problème. Cela permet aussi d'avoir des alertes personnalisées.

n°1787147
MagicBuzz
Posté le 15-09-2008 à 17:35:50  profilanswer
 

1/ Il manque un "ID" dans la table station
2/ La référence à la station depuis la table Activite ne sera pas "nomstation", mais "stationId" qui est une foreign key vers station.id
 
Ensuite, tu peux faire comme le dit olivthill depuis le programme. Perso, j'aime moyen si réellement une valeur inconsistante met en péril l'intégrité desdonnées (à toi de savoir si c'est grave ou non qu'il soit possible de passer outre cette limite), ou alors avec deux triggers :
=> Un premier sur activite before insert, update, qui va effectuer la vérification de la valeur de activite.prix
=> Un second sur station before update qui va effectuer la vérification de la valeur dans les lignes de la table activite liées à ton station.id
 
Les deux triggers lèveront une exception qui sera trappable depuis ton programme. Ainsi, si une personne bidouille la base directement en SQL ou par un autre moyen que ton programme, elle ne pourra pas passer outre la contrainte.


Message édité par MagicBuzz le 15-09-2008 à 17:36:20
n°1787148
MagicBuzz
Posté le 15-09-2008 à 17:37:24  profilanswer
 

ps : renomme tes deux topics, parceque ce matin quand j'ai jeté un oeil à l'autre j'ai cru à un double poste, et j'ai même pas regardé celui-ci

n°1787652
colfarell
Posté le 16-09-2008 à 14:35:10  profilanswer
 

Merci à vous mais le tp est réalisé étape par étape. A cette étape le prof demande à ce ke nous utilisions la contrainte check. Sion OlivThil peux peux me donner plus d'infos sur la programmation de cette contrainte dans le programme? Merci à vous tous.

n°1787657
MagicBuzz
Posté le 16-09-2008 à 14:41:54  profilanswer
 

je suis en pleine réinstallation de SQL Server, mais j'ai jamais entendu parler de contrainte CHECK qui permet d'interroger une requête (et encore moins sous SQL Server 2000...) :??:
 
dans tous les cas, va sur la MSDN pour voir la syntaxe de CHECK (mais pour moi le plus évolué que tu puisses faire, c'est comparer avec un champ de la même table, sur la ligne checkée)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  problème de contrainte

 

Sujets relatifs
Problème avec une boucle forproblème de contrainte:
Problème parse errorprobleme javascript sous DOCTYPE XHTML
Problème script sftpproblème avec XSL pour générer HTML à partir de XML
Débutant ==> Problème avec un programme 
Plus de sujets relatifs à : problème de contrainte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR