SI existe relacion entre el ejemplo que coloque, fijate bien en el campo ID de ambas tablas y el resultado que este retorna en base a una consulta.
O lo desgloso para que sea mas entendible:
Tomare de ejemplo yo y Winder.
ID ^Tifa^ = 1
ID Winder = 2
Ahora fijate la tabla relacion, que usuarios son amigos de ^Tifa^? los siguientes:
Segun la consulta dice que Winder y Napk ambos son amigos de ^Tifa^ ahora se confirma, en la tabla relacion correspondiente al ID = 1 que es ^Tifa^ que usuarios son amigos?
ID = 1 (Que es ^Tifa^) tiene dos amigos con nombre Winder y Napk
Pero posiblemente para que sea mas entendible, andas solicitando el modelo Entidad-Relacion:
Usuario -> ID -> Relacion
Esa es la relacion de estas 2 tablas.
Habran ocasiones que tendras que utilizar este tipo de modelado, por ejemplo un formulario WEB donde el usuario pueda elegir una o varias categorias de loquesea, digamos gustos particulares (Donde el usuario debe elegir que le gusta la informatica, la PC, la tecnologia, los procesadores, etc)... entonces vas a necesitar 2 indices en vez de 1 y uno de esos 2 tendra que repetirse para poder relacionar 1 usuario con varias categorias que este usuario eliga en su formulario...
Ahora preguntate como en InnoDB que es un motor transaccional, tu puedes implementar el tipo de relacion anterior y expuesto en mi ejemplo con tan solo usando 1 indice por tabla. Si vas a responderme diciendome que puedes usar un campo ENUM no es valido, ya que si tu tienes 10 categorias y en un futuro tienes que agregarle mas... que vas a hacer? tener una tabla del tamanio de un libro por el mero hecho de no disenarla desde un inicio con 2 indices en vez de 1?
O lo desgloso para que sea mas entendible:
Código (sql) [Seleccionar]
mysql> SELECT * FROM usuarios;
+------+------------+----------------------------------+
| id | nombre | contraseña |
+------+------------+----------------------------------+
| 1 | ^Tifa^ | 202cb962ac59075b964b07152d234b70 |
| 2 | Winder | 81dc9bdb52d04dc20036dbd8313ed055 |
Tomare de ejemplo yo y Winder.
ID ^Tifa^ = 1
ID Winder = 2
Ahora fijate la tabla relacion, que usuarios son amigos de ^Tifa^? los siguientes:
Código (sql) [Seleccionar]
mysql> SELECT a.nombre AS usuario,b.nombre AS relacion FROM usuarios a INNER JOIN relacion b USING(id) WHERE b.id = 1;
+---------+----------+
| usuario | relacion |
+---------+----------+
| ^Tifa^ | Winder |
| ^Tifa^ | Napk |
Segun la consulta dice que Winder y Napk ambos son amigos de ^Tifa^ ahora se confirma, en la tabla relacion correspondiente al ID = 1 que es ^Tifa^ que usuarios son amigos?
Código (sql) [Seleccionar]
mysql> SELECT * FROM relacion;
+------+--------+-----------+
| id | codigo | nombre |
+------+--------+-----------+
| 1 | 2 | Winder |
| 1 | 3 | Napk |
ID = 1 (Que es ^Tifa^) tiene dos amigos con nombre Winder y Napk
Pero posiblemente para que sea mas entendible, andas solicitando el modelo Entidad-Relacion:
Usuario -> ID -> Relacion
Esa es la relacion de estas 2 tablas.
Habran ocasiones que tendras que utilizar este tipo de modelado, por ejemplo un formulario WEB donde el usuario pueda elegir una o varias categorias de loquesea, digamos gustos particulares (Donde el usuario debe elegir que le gusta la informatica, la PC, la tecnologia, los procesadores, etc)... entonces vas a necesitar 2 indices en vez de 1 y uno de esos 2 tendra que repetirse para poder relacionar 1 usuario con varias categorias que este usuario eliga en su formulario...
Ahora preguntate como en InnoDB que es un motor transaccional, tu puedes implementar el tipo de relacion anterior y expuesto en mi ejemplo con tan solo usando 1 indice por tabla. Si vas a responderme diciendome que puedes usar un campo ENUM no es valido, ya que si tu tienes 10 categorias y en un futuro tienes que agregarle mas... que vas a hacer? tener una tabla del tamanio de un libro por el mero hecho de no disenarla desde un inicio con 2 indices en vez de 1?