Vous n'êtes pas identifié(e).
Pages : 1
[PostgrSQL 8.4 - pgAdmin 3 - OSX 10.6]
[Posté également sur developpez.net]
Bonjour à tous,
Décidément, ces derniers jours je poste beaucoup. Avant de migrer vers PostgreSQL, j'utilisais MySQL. Celui-ci possède un type de donnée qui s'appelle "enum".
Celui-ci me permettait d'avoir le choix d'une valeur dans une liste qui se déroulait. C'est très pratique pour savoir directement ce qu'on a comme choix et ne pas perdre de temps à se faire ramoner pour viol de contrainte.
Alors, pour contourner le problème j'ai créé d'autres tables pour simuler cet "enum". De par les lectures que j'ai eues, il semble que c'est là le moyen le plus propre de procéder.
Voici une base de donnée factice, dont le but est de savoir si un individu a des cheveux et de définir leur couleur:
-- Table: test."Table1"
-- DROP TABLE test."Table1";
CREATE TABLE test."Table1"
(
possede_cheveux character varying NOT NULL,
"Couleur_cheveux" character varying,
CONSTRAINT "Table1_pkey" PRIMARY KEY (possede_cheveux),
CONSTRAINT "Table1_Couleur_cheveux_fkey" FOREIGN KEY ("Couleur_cheveux")
REFERENCES test."Choix_Couleur" ("Couleur") MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT "Table1_possede_cheveux_fkey" FOREIGN KEY (possede_cheveux)
REFERENCES test."Choix_Possede" ("Choix") MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);
ALTER TABLE test."Table1" OWNER TO postgres;
-- Index: test.fki_
-- DROP INDEX test.fki_;
CREATE INDEX fki_
ON test."Table1"
USING btree
("Couleur_cheveux");
liée à ces deux tables ci dessous:
-- Table: test."Choix_Couleur"
-- DROP TABLE test."Choix_Couleur";
CREATE TABLE test."Choix_Couleur"
(
"Couleur" character varying NOT NULL,
CONSTRAINT "Choix_Couleur_pkey" PRIMARY KEY ("Couleur")
)
WITH (
OIDS=FALSE
);
ALTER TABLE test."Choix_Couleur" OWNER TO postgres;
et
-- Table: test."Choix_Possede"
-- DROP TABLE test."Choix_Possede";
CREATE TABLE test."Choix_Possede"
(
"Choix" character varying NOT NULL,
CONSTRAINT "Choix_Possede_pkey" PRIMARY KEY ("Choix")
)
WITH (
OIDS=FALSE
);
ALTER TABLE test."Choix_Possede" OWNER TO postgres;
La question devient donc:
Peut-on, lorsqu'on ajoute des données à la Table 1, avoir un petit menu déroulant reprenant les valeurs de la table liée par la clé étrangère , et ce pour chaque colonne?
Je vous remercie par avance,
A bientôt,
LeHibou2
Hors ligne
Peut-on, lorsqu'on ajoute des données à la Table 1, avoir un petit menu déroulant reprenant les valeurs de la table liée par la clé étrangère , et ce pour chaque colonne?
Dans pgAdmin, non.Mais c'est une fonctionnalité souhaitée et qui devrait être implanté pour la prochaine version qui va bientôt être en développement. Même chose pour les enums qui existent depuis la version 8.4.
Guillaume.
Hors ligne
Merci de votre réponse gleu.
J'en prends bonne note et patiente.
A bientôt!
LeHibou
Hors ligne
Par ailleurs, il y a aussi un type enum sous PostgreSQL
Marc.
Hors ligne
Pages : 1