Cle etrangere prenant uniquement certaine valeur de la cle primaire - SQL/NoSQL - Programmation
Marsh Posté le 12-04-2005 à 12:55:25
Regarde du côté des contraintes "check" (en plus de la FK biensûr)
Par contre, je ne les ai jamais utilisé, je ne peux donc pas entrer dans le détail. En tout cas, elles permettent vraissemblablement de faire ça (j'ai un doute quand à la lecture dans le champ)
Si ça marche pas, fait bêtement un trigger, là ça marchera à coup sûr par contre
Marsh Posté le 12-04-2005 à 15:16:01
le truc c'est que les contraintes "check" verifie uniquement les cles dans la table ou tu fais la contrainte, donc je ne peux pas verifie la valeur d'un champ d'une autre table avec lequel un enregistrement est lie.
sinon je vais effectivement faire un trigger pour verifie, c'est le mieu a faire.
j'aimais pas trop le fait que une FK ne puisse prendre que certaine valeur de la PK, mais je voie pas mieux a faire.
Marsh Posté le 12-04-2005 à 09:57:08
Je suis en train de cree une base de donnee sous SQL Server.
J'ai plusieurs table lie par une cle etrangere a une meme table commune Journal.
Seulement, chacune de ces tables ne doit prendre que certaine valeur de la cle primaire (ceci etant defini par un champ
type dans la table Journal).
En simplifaint j'ai;
Journal ( id, type, date... )
InfoType1( id, .. )
InfoType2( id, .. )
Chacun de ces tables contient des info supplementaire concernant un evenement du journal (les champs sont differents
dans toutes ces tables.
Je voie 2 solutions:
- soit scinder la table journal pour chaque type pour eviter un mauvais lien entre cle etrangere/primaire, et faire un
UNION lorsque je veux afficher tous les evenements du journal, ce qui me ferait modifier la requete le jour ou un
nouveau type vient s'ajouter
- soit cree un trigger pour eviter de pouvoir inserer un entree dans une table du type pointant vers une entree de
journal ne correspondant pas.
---------------
What butter and whiskey won't cure, there is no cure for.