Können Sie haben 2 foreign keys und nicht primary key?
Habe ich eine einfache Datenbank und ich mache eine Beziehung zwischen zwei Tabellen. So habe ich diese 3. Tabelle, wo Sie miteinander verbunden sind. Hat die Dritte Tabelle benötigen einen primary key? Denn alles, was ich brauchen, ist die Verknüpfung der beiden Tabellen zusammen, und eine extra Spalte für etwas anderes.
- Sie müssen einen Primärschlüssel haben, aber die beiden Fremdschlüssel bilden könnten, einen zusammengesetzten Primärschlüssel.
- Sie in der Regel nicht "müssen einen Primärschlüssel haben" - aber Sie sollten eines haben! (@Lyuben Todorov)
- Ich bin nicht einverstanden, in der Tat-hier war eine große schöne argument über es. @DRobinson ja, wir haben primary keys es sei denn, wir fallen unter diesen besonderen besonderen Fällen.
- Es ist englische Semantik. Sie sagen, Sie "sollte" immer, Sie sagen, Sie "müssen". Es ist möglich, nicht eine haben, so dass Sie nicht "müssen".
- Sie kann nicht garantieren, 1NF, ohne einen primary key, so können Sie eine Tabelle erstellen, aber nicht eine Beziehung.
- Ja, das ist genau der Grund, warum ich sagte, "Sie sollten" ohne Klauseln - in fast jedem Fall ein Primärschlüssel ist eine gute Sache zu haben. Es ist auch der Grund, warum ich sagte, es war die englische Semantik - ich wurde lediglich darauf hingewiesen, dass es ausdrücklich möglich, auch wenn es nicht eine gute Idee.
- Fremdschlüssel sind nicht "not NULL" standardmäßig. Durch das hinzufügen einer primary key-Einschränkung auf die beiden FK-Felder, die Sie inhärent verhängen, die einen NICHT-NULL-Beschränkung auf diese (ein PK-element darf nicht NULL sein). Und Sie durchzusetzen, jede Kombination, deren Werte eindeutig sein, auch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Art der Tabelle, die du beschreibst wird manchmal als join-Tabelle. Erstellen Sie einen primary key über den Spalten beitreten Sie sind sowohl für die Einzigartigkeit und weil es eher indiziert für eine bessere Leistung.
Was Sie beschreiben, ist eine Zuordnungstabelle.
Ja, Sie können ohne einen Primärschlüssel (oder einer anderen option ist eine Zusammengesetzte Primary Key - machen die beiden Referenzen ein eindeutiges paar, und mit, dass, wie die eindeutige Identifizierung von Schlüssel - aber auch das ist nicht erforderlich (Hinweis: nur weil es "nicht notwendig" bedeutet nicht, dass es nicht "gute Praxis"; wäre es nicht allgemein eine gute Idee, um mehrere Zeilen mit exakt gleichem Inhalt)).
Verwenden diese Begriffe, die Sie sollten in der Lage sein, die Antworten zu finden, die Sie für die Implementierung benötigen.