PK duplicato in MySQL
-
03-07-2019 - |
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!
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));