j'ai deux tables:problème général many-to-many (Postgresql)
CREATE TABLE "public"."auctions" (
"id" VARCHAR(255) NOT NULL,
"auction_value_key" VARCHAR(255) NOT NULL,
"ctime" TIMESTAMP WITHOUT TIME ZONE NOT NULL,
"mtime" TIMESTAMP WITHOUT TIME ZONE NOT NULL,
CONSTRAINT "pk_XXXX2" PRIMARY KEY("id"),
);
et
CREATE TABLE "public"."auction_values" (
"id" NUMERIC DEFAULT nextval('default_seq'::regclass) NOT NULL,
"fk_auction_value_key" VARCHAR(255) NOT NULL,
"key" VARCHAR(255) NOT NULL,
"value" TEXT,
"ctime" TIMESTAMP WITHOUT TIME ZONE NOT NULL,
"mtime" TIMESTAMP WITHOUT TIME ZONE NOT NULL,
CONSTRAINT "pk_XXXX1" PRIMARY KEY("id"),
);
si je veux créer un grand nombre à plusieurs rapports sur la auction_value_key comme ceci:
ALTER TABLE "public"."auction_values"
ADD CONSTRAINT "auction_values_fk" FOREIGN KEY ("fk_auction_value_key")
REFERENCES "public"."auctions"("auction_value_key")
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE;
je reçois cette erreur SQL:
ERROR: there is no unique constraint matching given keys for referenced table "auctions"
Question:
Comme vous pouvez le voir, je veux « auction_values » à être « réutilisés » par différentes ventes aux enchères sans les dupliquer pour chaque vente ... Alors je ne veux pas une relation clé sur la champ "id" dans le tableau des enchères ...
Est-ce que je pense mal ici ou quel est le problème? ;)
Merci
Telle est l'approche classique de la normalisation, Bravo – stjohnroe
probablement raison, mais pas nécessairement :) Peut-être que les groupes 'auction_value_key' l'ensemble de lignes de 'auction_values'? Dans ce cas, le schéma proposé n'est pas correct. – Unreason