Cle etrangere prenant uniquement certaine valeur de la cle primaire

Cle etrangere prenant uniquement certaine valeur de la cle primaire - SQL/NoSQL - Programmation

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.
Reply

Marsh Posté le 12-04-2005 à 09:57:08   

Reply

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 ;)

Reply

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.


---------------
What butter and whiskey won't cure, there is no cure for.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed