¿Cómo representar una relación self to self en rdbms?
-
07-07-2019 - |
Pregunta
Espero que esta sea una pregunta tonta, pero mi cerebro está frito y no puedo pensar en cómo hacerlo ahora.
Estoy jugando tratando de crear una red social y tendré que estar al tanto de los "seguidores" de una persona. Ya tengo una tabla de usuario, pero ¿cómo represento la idea de que los usuarios estén asociados entre sí? Por cierto, esta es una relación unidireccional, por lo que si la persona a '' le gusta '' persona b, lo contrario no es necesariamente cierto.
Lo único que se me ocurre es una tabla que solo tiene una lista de relaciones uno a uno, así que:
user a -> user b
user a -> user c
user a -> user d
user b -> user d
user b -> user c
...
pero esto me parece fuera de lugar.
Gracias
Simon
editar: tal vez un seguidor en twitter es más análogo a lo que estoy tratando de hacer
Solución
Cree una tabla que contenga solo la información de identificación de seguidor de esta manera:
id_usuario | follower_id
Eso debería ser. así que tome por ejemplo el usuario # 56.
probablemente tendría filas como esta en la tabla de seguidores:
56 | 53453
56 | 323
56 | 463
Simplemente agregue una restricción única en ambas columnas para que no pueda hacerse amigo de alguien dos veces.
Otros consejos
Quizás una tabla que se vea así:
RelationshipId Follower Target
Int Int Int
Donde Follower es el Id. del UsuarioA, y Target es el Id. del UsuarioB, y el UsuarioA sigue al UsuarioB.