Frage

Ich war auf dieser Seite vor einer Weile gesagt, dass der einzige Weg, mit einem many-to-many gehen (in meinem Fall ein Facebook-ish „Freund-ing“ System) ist, so etwas zu tun:

uid(PK) friend_id
4       23
4       20
4       54
32      20
32      89

WONT diese lassen mich mit vielen identischen Primärschlüssel (was ich glaube, nicht möglich ist?) Und wenn ich nicht uid als PK gesetzt, wie kann ich die Tabelle schnell suchen? Es muss einen Weg geben mit einem PK mit diesem wegzukommen.

Danke!

War es hilfreich?

Lösung

Wenn Sie eine viele zu viele Beziehung haben, können Sie eine Tabelle entwickeln zwischen dem Sie eine Dual-Primärschlüssel mit der UID erstellen und die Friend_ID zusammen. Auf diese Weise gibt es nur eine Instanz eines Paares von UID / Friend_ID sein sollte.

Andere Tipps

es einen zusammengesetzten Schlüssel machen

PK = (uid, frield_id)

Verwenden eines zusammengesetzten sowohl der uid und friend_id als Primärschlüssel.

Machen sie beide Teil des Primärschlüssels.

Allerdings werden Sie wollen auch einen Index für uid (und möglicherweise friend_id) machen, so dass die Suchgeschwindigkeit nicht leiden.

Sie können nur eine Verbindung Primärschlüssel machen:

create table fbook (uid int, friend_id int, primary key(uid, friend_id));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top