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?
basadas en el modelo tradicional Entidad-Relacion. Recuerda que antes no existian motores de almacenamientos transaccionales (Me refiero cuando nacio Oracle alla por los inicios del ochenta) no existia una implementacion que manejase de forma automatica una relacion entre 2 o mas tablas, entonces utilizan este modelo que viste en mi ejemplo, y que mencionan con constancia otros usuarios que han respondido a este post, y el modelo continua hoy dia siendo bastante efectivo
y todavia se utiliza.
y se cumplan todas las propuestas deseadas por tod@s ustedes.
yo lo pensaria....
y no culpo al que quiera jalarme las orejas por ello... pero esto es un mero ejemplo