#1 Thu 25 July 2019 15:43
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 199
liste de valeurs pour un champs
Bonjour,
je souhaiterais comprendre comment fonctionne les listes de valeurs au sein des bases de données. J'ai une table canalisation qui comporte un champs matériau disposant d'une clé étrangère vers une table "matériaux" qui contient le code (clé primaire de la table) et les matériaux (voir image).
Ma base sera exploitée par le biais de geoconcept. Je souhaite que lorsqu'un utilisateur intègre ou modifie une canalisation il ne puisse pas rentrer des valeurs aberrantes. Pour ce faire lors du choix de matériau je souhaites que l'utilisateur choisisse les valeurs au sein d'une liste définit.
Est-ce que c'est possible d'implémenter ça directement au niveau de la base de donnée (trigger ?) ou bien il faut réaliser ca en amont sur le logiciel client ?
Hors ligne
#2 Thu 25 July 2019 16:28
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: liste de valeurs pour un champs
Vous pouvez implémenter cela dans une base de données relationnelle
sans passer par un trigger, mais en spécifiant une contrainte de clé étrangère.
Exemple, sous PostgreSQL :
Code:
ALTER TABLE materiaux ADD CONSTRAINT pk_materiaux_id_materiaux PRIMARY KEY(id_materiaux) ; ALTER TABLE canalisation ADD CONSTRAINT fk_canalisation_id_materiaux FOREIGN KEY (id_materiaux) REFERENCES materiaux(id_materiaux) ;
Ainsi, le mécanisme d'intégrité référentielle du moteur de base de données
vous garantira que la colonne id_materiaux de votre table canalisation
ne contiendra jamais une valeur qui n'existe pas dans la table materiaux,
à l'exception de NULL.
Pour empêche cette exception, vous pouvez
rajouter une contrainte NOT NULL sur la colonne.
Code:
ALTER TABLE canalisation ADD CONSTRAINT not_null_canalisation_id_materiaux NOT NULL (id_materiaux) ;
Dernière modification par tumasgiu (Thu 25 July 2019 16:31)
Hors ligne
#3 Thu 25 July 2019 18:21
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 199
Re: liste de valeurs pour un champs
Top ! après il est néanmoins nécessaire d'importer la table dans le logiciel client pour établir un menu déroulant non ?
Hors ligne
#4 Fri 26 July 2019 10:38
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: liste de valeurs pour un champs
Sans doute, je ne sais pas comment fonctionne GeoConcept.
Vous pouvez aller poser la question dans le forum dédié.
Hors ligne