Frage

Ich möchte einen Tisch machen, die einfach zwei Integer-Spalten als Zuordnungstabelle zwischen zwei verschiedenen Datensätzen zu dienen, und ich möchte die richtigen Einschränkungen auf sie setzen.

Ich habe zunächst die zwei Spalten als eine Verbindung Primärschlüssel, aber dann erkennen, dass ein vieles zu viele darstellt, nur viele, viele Abbildungen von dem Auftreten duplizieren zu halten.

Wie gebe ich mir beiden Spalten eindeutige Zahlen in allen Zeilen zu sein? Ich benutze MS SQL, aber ich nehme an, dies ist eine allgemeine Datenbank-Design-Frage.

War es hilfreich?

Lösung

Erstellen Sie einen Primärschlüssel auf einer Säule und einem weiteren separaten eindeutige Einschränkung oder einen eindeutigen Index, auf der anderen Seite.

CREATE TABLE [dbo].[test](
    [x] [int] NOT NULL,
    [y] [int] NOT NULL,
     CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED 
     ( [x] ASC) 
     WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, 
         IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, 
         ALLOW_PAGE_LOCKS  = ON) 
     ON [PRIMARY]) 
 ON [PRIMARY]

CREATE UNIQUE NONCLUSTERED INDEX [IX_test] ON [dbo].[test] 
  ([y] ASC) 
   WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, 
         SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, 
         DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, 
         ALLOW_PAGE_LOCKS  = ON)  
 ON [PRIMARY]

Andere Tipps

Erstellen eine andere Tabelle erfolgt eine viele zu viele Beziehung zu schaffen, so sollten Sie es wahrscheinlich nicht erstellt haben (es sei denn, ich bin etwas fehlt).

Eines zu eins obligatorisch ist das gleiche wie die beiden Tabellen als eine einzige Tabelle mit. Die einzige akzeptable 00.59 ist optional, und Sie müssen einfach die beiden Tabellen beziehen, keine dritte Tabelle notwendig.

Verwenden Sie einen eindeutigen Spalte Einschränkung für jede Spalte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top