Bonjour,

J'ai un petit souci de conception et un avis à vous demander.
J'ai une table T1 qui contient divers champs dont l'un est "sens_id" et qui contient l'id d'une autre table T2 (clé étrangère)
Cette table T2 contient un champ "sens" qui peut prendre les valeurs droite, gauche, haut, bas et rien (pas de sens) !
C'est ce "rien" qui me pose problème car le sens_id de T1 DOIT contenir une valeur et je ne veux pas mettre de NULL pour modéliser le RIEN car je devrais mettre le champ sens à NULL.
Et cela permettrait la possibilité d'insérer plusieurs NULL dans la table T2 ce que je ne veux pas !
Est-ce que je dois à la place de NULL insérer une chaine vide comme valeur pour "rien" de la table T2 et la traiter ensuite côté script ?
Ou bien une valeur texte "NULL" et la traiter côté script également ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE `T1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  ...
  ...
  ...
  `sens_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  CONSTRAINT FOREIGN KEY (sens_id) REFERENCES T2(id)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8 ;
 
CREATE TABLE `T2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `SENS` varchar(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8 ;
Merci de vos avis.