Domanda

Mi è stato detto poco fa su questo sito che l'unico modo per andare con un sistema molti-a-molti (nel mio caso un sistema di Facebook "amico") è fare qualcosa del genere:

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

Questo non mi lascerà con molte chiavi primarie identiche (che credo non sia possibile?) E se non riesco a impostare uid come PK, come posso cercare rapidamente la tabella? Ci deve essere un modo per cavarsela con un PK.

Grazie!

È stato utile?

Soluzione

Se hai molte o molte relazioni, puoi sviluppare una tabella tra cui creare una chiave primaria doppia con l'UID e Friend_ID insieme. In questo modo dovrebbe esserci solo un'istanza di una coppia di UID / Friend_ID.

Altri suggerimenti

rendilo una chiave composita

PK = (uid, frield_id)

Usa un composito di uid e friend_id come chiave primaria.

Renderli entrambi parte della chiave primaria.

Tuttavia, ti consigliamo anche di creare un indice su uid (e possibilmente friend_id) in modo che la velocità di ricerca non ne risenta.

Puoi semplicemente creare una chiave primaria composta:

create table fbook (uid int, friend_id int, primary key(uid, friend_id));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top