1:1 Beziehung zwischen zwei Tabellen

14/04/2008 - 10:21 von Hartmut Callies | Report spam
Hallo,
ich habe u.a. zwei Tabellen (Artikel, ArtikelEigenschaften) die in
einer 1:1 Beziehung stehen solle. Es funktioniert aber nicht.
In der Fehlermeldung steht, dass in der Artikel-Tabelle kein
primàrer Schlüssel existiert, auf den im im Fremschlüssel
(ArtikelEigenschaften-Tabelle) hingewiesen wird.
Wie definiere ich eine 1:1 Beziehung zwischen beiden
Tabellen richtig?

CREATE TABLE [Artikel]([ID] [INT] NOT NULL IDENTITY(1,1), [ArtikelID] [INT]
NOT NULL, [Bezeichnung1] [VARCHAR] (50) NULL, CONSTRAINT [Artikel_ArtikelID]
PRIMARY KEY ([ArtikelID]));

CREATE TABLE [ArtikelEigenschaften]([ID] [INT] NOT NULL IDENTITY(1,1),
[ArtikelID] [INT] NOT NULL, [Eigenschaft1] [VARCHAR] (50) NULL, CONSTRAINT
[ArtikelEigenschaften_ArtikelID] PRIMARY KEY ([ArtikelID]), CONSTRAINT
[Artikel_ArtikelEigenschaften] FOREIGN KEY ([ID]) REFERENCES [Artikel]
([ID]));


Hartmut Callies
 

Lesen sie die antworten

#1 Christoph Ingenhaag
14/04/2008 - 10:51 | Warnen spam
Hallo Hartmut,

lies dir dein Statement nochmal in Ruhe durch. Insbesondere die Passage
PRIMARY KEY und FOREIGN KEY. Da müsste dir dein Fehler schon ins Auge
stechen...

Btw. wenn du schon zusàtzliche technischen Schlüssel vergibst, auf die du
die Fremdschlüsselbeziehung legen willst, warum machst du diese dann nicht
zum Primary Key und vergibts ein Unique Constraint auf deine "natürlichen"
Schlüssel?

Übrigens ist es bei einer 1:1 Beziehung auch gar keine gute Idee bei beiden
Tabellen eine Identity Spalte anzulegen!

Machs doch vielleicht so:

CREATE TABLE [Artikel]([ID] [INT] NOT NULL IDENTITY(1,1), [ArtikelID] [INT]
NOT NULL, [Bezeichnung1] [VARCHAR] (50) NULL, CONSTRAINT [Artikel_ID]
PRIMARY KEY ([ID]),CONSTRAINT [Unique_Artikel_ArtikelID] UNIQUE(ArtikelID));

CREATE TABLE [ArtikelEigenschaften]([ID] [INT] NOT NULL,
[ArtikelID] [INT] NOT NULL, [Eigenschaft1] [VARCHAR] (50) NULL, CONSTRAINT
[ArtikelEigenschaften_ArtikelID] PRIMARY KEY ([ID]),
CONSTRAINT [Unique_ArtikelEigenschaften_ArtikelID] UNIQUE(ArtikelID),
CONSTRAINT [Artikel_ArtikelEigenschaften] FOREIGN KEY ([ID]) REFERENCES
[Artikel]([ID]));


Vg
Christoph

Ähnliche fragen