table composé de clefs étrangères
Posté : 07 juin 2009, 12:49
Bonjour, je dois mettre en place une base de donnée relationnel, et j'aimerais savoir si je n'ai pas fais d'erreur de logique, voici le mcd :
en---(1,n)---(lien)----(1,n)----fr
Et voici le code sql :
J'aimerais éviter de commencer à travailler avec une base qui serait fausse. Ma principale interrogation concerne la table lien qui contient uniquement les clefs étrangères. J'avais pour habitude de travailler avec le moteur de stockage MylSAM, et je créais mes liens avec php, je souhaite donc envisager d'autre possibilités, car ce que je faisais n'étais pas focément une solution viable à long terme. Dans l'attente d'une réponse de votre part, je vous souhaite à tous une bonne journée malgré ce mauvais temps 
en---(1,n)---(lien)----(1,n)----fr
Et voici le code sql :
Code : Tout sélectionner
CREATE TABLE `en` (
`id_en` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
PRIMARY KEY (`id_en`)
) TYPE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `fr` (
`id_fr` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
PRIMARY KEY (`id_fr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `lien` (
`id_fr` int(11) NOT NULL,
`id_en` int(11) NOT NULL,
PRIMARY KEY (`id_fr`,`id_en`),
CONSTRAINT `FK_id_en` FOREIGN KEY (`id_en`) REFERENCES `en` (`id_en`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_id_fr` FOREIGN KEY (`id_fr`) REFERENCES `fr` (`id_fr`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
