Question

On m'a dit il y a quelque temps sur ce site que le seul moyen d'utiliser un système à plusieurs (dans mon cas, un système facebook-ish "amicalement") est de procéder de la sorte:

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

Est-ce que cela ne me laissera pas beaucoup de clés primaires identiques (ce qui, à mon avis, n'est pas possible?) Et si je ne peux pas définir uid en tant que PK, comment puis-je effectuer rapidement une recherche dans la table? Il doit y avoir un moyen de s'en sortir avec un PK.

Merci!

Était-ce utile?

La solution

Si vous avez une relation plusieurs à plusieurs, vous pouvez développer une table entre où vous créez une clé primaire double avec l’UID et le Friend_ID ensemble. Ainsi, il ne devrait y avoir qu’une seule instance d’une paire UID / Friend_ID.

Autres conseils

en faire une clé composite

PK = (uid, frield_id)

Utilisez un composé composé à la fois de uid et de friend_id en tant que clé primaire.

Faites-en une partie de la clé primaire.

Cependant, vous voudrez également créer un index sur uid (et éventuellement ami_id) afin que la vitesse de recherche ne soit pas affectée.

Vous pouvez créer une clé primaire composée:

create table fbook (uid int, friend_id int, primary key(uid, friend_id));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top