-
table de relation
bonjour,
je voulais construire un petit modèle de dictionnaire multi-langue pour un site web multi langue. J'ai donc choisi de mettre dans une base de donnée tout les contenus multi langues et voici le shéma (listes de tables):
- table 'tlanguage':
. code charactere(2),
. language varchar(25) not null,
. PRIMARY KEY (code)
- table 'tcontents' :
. id serial,
. contents text not null,
. language charactere(2) not null,
. PRIMARY KEY (id),
. FOREIGN KEY (language) REFERENCES tlanguage(code)
Et mon problème est comment créer la table 'tdictionnary' qui devrais faire un référence à 2 entrées de la table 'tcontents' dont le champ tcontents.language des 2 entrées sont différentes
j'ai donc créer la table tdictionnary de la manière suivante :
- table 'tdictionnary' :
. contentSource integer REFERENCES tcontents (id) not null ON DELETE CASCADE,
. contentDest integer REFERENCES tcontents (id) not null ON DELETE CASCADE
et ici je ne voulais pas créer un trigger before insert or update sur la table tdictionnary qui va tester que 'tcontents.language' correspondant à 'tdictionnary.contentSource' et le 'tcontents.language' correspondant à 'tdictionnary.contentDest' sont différentes
Mais je voulais mettre un contrainte 'CHECK' dans la table 'tdictionnary' mais je ne sais pas comment exprimer mon CHECK??? est que vous en avez d'idées???
merci
-
Perso,
je ne pense pas qu'il est possible sans trigger d'avoir des contraintes de type Check sur une colonne avec une condition portant sur une colonne d'une autre table.
J'ai cherché partout et je n'ai trouvé aucun cas semblable au tien. Apparement, les contraintes de type check reste dans l'environnement d'une seule table et non plusieurs.
Si quelqu'un a trouvé un truc de ce style par contre ça m'intéresse.
@+
champijulie.