Pregunta

Hace un tiempo me dijeron en este sitio que la única manera de ir con un sistema de muchos a muchos (en mi caso, un sistema de Facebook-ish " friend-ing ") es hacer algo como esto:

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

¿Esto no me deja con muchas claves primarias idénticas (que creo que no es posible?) Y si no puedo configurar uid como PK, ¿cómo puedo buscar rápidamente en la tabla? Debe haber una manera de salirse con la suya con un PK.

¡Gracias!

¿Fue útil?

Solución

Si tiene una relación de muchos a muchos, puede desarrollar una tabla en la que cree una clave principal dual con el UID y el Friend_ID juntos. De esa manera solo debería haber una instancia de un par de UID / Friend_ID.

Otros consejos

haz que sea una clave compuesta

PK = (uid, frield_id)

Utilice una combinación de uid y friend_id como clave principal.

Haz que ambos sean parte de la clave principal.

Sin embargo, también querrás hacer un índice en uid (y posiblemente en friend_id) para que la velocidad de búsqueda no se vea afectada.

Puedes hacer una clave principal compuesta:

create table fbook (uid int, friend_id int, primary key(uid, friend_id));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top