Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria de saber como funciona a lógica no BD para realizar um relacionamento de amizade em uma rede social ou qualquer coisa do tipo.
Alguém poderia dar um exemplo?
Gostaria de entender esse controle no BD quanto a enviar convite de amizade e ficar pendente até o outro aceitar e depois de aceito já estar feita a vinculada.
Essa parte aí eu tinha pensado, mas a dúvida seria o seguinte:
Como vou saber através deste status quem enviou o convite? Pois só assim com estas informações, não tem como saber, então este convite para ser aceito seria visualizado pelos 2. Não tem controle neste caso.
>
Essa parte aí eu tinha pensado, mas a dúvida seria o seguinte:
Como vou saber através deste status quem enviou o convite? Pois só assim com estas informações, não tem como saber, então este convite para ser aceito seria visualizado pelos 2. Não tem controle neste caso.
Apartir daí tanto faz, depende de sua organização... Você poderia definir o usuario_1 como quem enviou o convite e usuario_2 como sendo sempre quem recebeu.
E para o select mostrar as solicitações de amizades pendentes usaria apenas:
SELECT * FROM usuarios_amigos WHERE usuario_2=' /* ID DO USUARIO LOGADO NA REDE */ ' AND amizade_status = '0'
No caso, considerei amizade_status='0' igual a convite pendente.
Bom, nao vou colocar SQL, mas vou escrever a lógica:
TABELA | CAMPOS
usuario | id, nome, e-mail, ...
usuario_amigos | usuario_1, usuario_2, amizade_status
No caso o usuário enviaria o convite para outro, e na tabelas usuario_amigos os campos usuario_1 e usuario_2 seriam chaves estrangeiras, do campo id da tabela usuario. No amizade_status você definiria o status (ex: 0-convite pendente, 1-amigo aceito, 2-bloqueado) e caso a amizade fosse recusada deletaria os dados da tabela.
Pensei e já fui postando, mas funcionaria +/- assim.