Reference d'une cle multiple - SQL/NoSQL - Programmation
MarshPosté le 26-05-2009 à 12:33:08
Bonjour,
J'ai une problématique. J'aimerais avoir une valeur qui fait "reference" à un id d'une table, mais cette ID ne peut être unique. Je m'explique: nous avons par exemple une table simple D CREATE TABLE D ( id integer not null, e varchar(50) ); et une table index : CREATE TABLE indexation ( id integer NOT NULL, a character varying(255), c date, d integer references d(id), CONSTRAINT indexation_pkey PRIMARY KEY (id) ); La table indexation ne peut pas se creer car "d integer references D(id)" veut un id de la table D unique. Mais moi je peux avoir plusieurs id du mm nom. par exemple D.id = 10 and e=numero-1 D.id = 10 and e=numero-2 indexation.id=1 and indexation.a=bonjour and indexation.c=10/10/2010 and indexation.d=10 Donc je veux que la valeur de la table indexaiton d fasse reference à plusieurs ligne d'une table, mais que cette reference existe que si elle existe dans la table D.
J'espère avoir été clair. Je suis sur que c'est possible. Quelqu'un a une idée? Merci.
Marsh Posté le 26-05-2009 à 12:33:08
Bonjour,
J'ai une problématique.
J'aimerais avoir une valeur qui fait "reference" à un id d'une table, mais cette ID ne peut être unique.
Je m'explique:
nous avons par exemple une table simple D
CREATE TABLE D (
id integer not null,
e varchar(50)
);
et une table index :
CREATE TABLE indexation
(
id integer NOT NULL,
a character varying(255),
c date,
d integer references d(id),
CONSTRAINT indexation_pkey PRIMARY KEY (id)
);
La table indexation ne peut pas se creer car "d integer references D(id)" veut un id de la table D unique.
Mais moi je peux avoir plusieurs id du mm nom.
par exemple
D.id = 10 and e=numero-1
D.id = 10 and e=numero-2
indexation.id=1 and indexation.a=bonjour and indexation.c=10/10/2010 and indexation.d=10
Donc je veux que la valeur de la table indexaiton d fasse reference à plusieurs ligne d'une table, mais que cette reference existe que si elle existe dans la table D.
J'espère avoir été clair.
Je suis sur que c'est possible.
Quelqu'un a une idée?
Merci.