Hola a todos, tengo un dilema y no se cual sea la mejor forma de resolverlo y espero que aca me dejen su ayuda o comentarios al respecto. Estoy desarrollando una aplicación donde existen usuarios y dichos usuarios pueden establecer relaciones de amistad. O sea que muchos usuarios pueden tener muchas relaciones. Tambien pueden o no existir varios tipos de relaciones entre usuarios asi de esta forma yo puedo ser amigo de alguien y famiia de otro alguien. He pensado en tener las siguientes tablas:
- usuarios (id_usuario)
- tipos_relaciones (id_tipo)
- usuarios_relaciones (id, id_tipo, id_usuario_1, id_usuario_2, activa)
Pero esto provoca que por cada relacion se me generen 2 registros en la tabla usuario_relaciones por lo cual me quedaria algo asi:
usuarios
1 pepe
2 jose
tipos_relaciones
1 amigo
2 familia
usuarios_relaciones
1 amigo pepe jose no
2 amigo jose pepe no
3 familia pepe jose no
4 familia jose pepe no
O sea que se me duplican los registros por cada relacion entre usuarios y tambien por cada tipo de relacion claro esto con el objetivo de hacer un solo SELECT a la hora de buscar las personas relacionadas con determinado usuario porque de lo contrario tendria que hacer una UNION y creo que conllevaria a una perdida de performance en la BD. Que me recomiendan? Algunos tips o ayuda?
Saludos y desde ya gracias