Foreign key et contraintes

Signaler
Messages postés
36
Date d'inscription
mardi 23 novembre 2010
Statut
Membre
Dernière intervention
4 avril 2013
-
Bonsoir tout le monde...
J'essaie de créer une base de données contenant des tables avec des références vers d'autres tables (grâce à des clés étrangères).
Admettons :
une table de contact, dans laquelle :
- id
- civ (int(3)not null)
- nom
- prénom
- adresse (int(3)not null)

'civ' et 'adresse' sont chacune des clés étrangères de deux clés primaires de deux tables :
- une table 'civilite' avec 2 champs :
...* civ_id (int(3) auto-incrementé not null)
...* civ_type (enum 'M.','Mme')
-une table 'adresse' avec :
...* adrs_id (int(3) auto-incrementé not null)
...* adrs_rue
...* adrs_cp
...* adrs_ville

aucun problème pour la création des tables et des relations.
En revanche, ce que je souhaite faire ne peux pas marcher et je ne vois pas comment faire.
Pour la civilité le problème ne se pose pas car il y aura toujours une relation.
En revanche parfois l'adresse n'existe pas et je souhaiterai alors qu'il n'y ai pas de relation. le pb c'est ce 'NOT NULL'...

Je pourrais créer une entrée 'pas d'adresse' dans ma table d'adresse et la mettre par défaut quand le champ est vide mais je pense qu'il doit y avoir un moyen plus clean de faire celà.

si vous pouviez m'aider. Merci d'avance. Très bonne soirée à tous