Artigo da SQL Magazine 40 - Modelando redes sociais Parte 2

Artigo da SQL Magazine - edição 40.

Clique aqui para ler esse artigo em PDF.

Clique aqui para ler todos os artigos desta edição

Modelando redes sociais – Parte 2

 

Este artigo aborda a modelagem de uma rede social, como as redes virtuais de sites de relacionamentos do Orkut e do MySpace. Esta segunda parte apresentará as operações de contagem de amigos diretos e indiretos de um perfil assim como a operação que permite a contagem dos amigos em comum entre dois perfis.

As operações apresentadas neste artigo foram implementadas em stored procedures utilizando a linguagem Transact-SQL, que é a linguagem de programação do SQL Server 2000/2005. O código fonte apresentado neste artigo pode ser facilmente adaptado para outros bancos de dados ou linguagens de programação.

Recapitulando a modelagem

Na primeira parte do artigo sobre redes sociais, apresentado na SQL Magazine número 40, as principais tabelas que armazenam os dados de uma rede social genérica foram apresentadas. Para facilitar a compreensão das operações descritas nesta segunda parte, uma recapitulação das tabelas utilizadas será apresentada. No modelo de redes sociais proposto, a tabela Perfil armazena os usuários cadastrados na rede. Os detalhes pessoais de cada usuário são armazenados na tabela Detalhes, que possui um relacionamento 1-1 com a tabela Perfil por meio das colunas ID_DETALHE. A tabela Amigos armazena o relacionamento entre dois perfis, por meio das colunas ID_PERFIL_A e ID_PERFIL_B. Para representar um relacionamento entre dois perfis é necessário que duas linhas sejam inseridas na tabela Amigos: uma linha armazena o perfil de quem fez o convite na coluna ID_PERFIL_A e a outra linha armazena quem recebeu o convite na coluna ID_PERFIL_B. A coluna APROVADO da tabela Amigos deve conter o valor 1 (verdadeiro) para ambas as linhas que representam o relacionamento.

Contando os amigos

Uma operação comum em uma rede social é a contagem direta de amigos de um perfil. O termo direto, neste contexto, se refere aos amigos que foram autorizados para fazer parte do conjunto de amigos de um determinado perfil. Os demais amigos são chamados de amigos indiretos, ou seja, são agregados por serem ‘amigos dos amigos’. Veremos como fazer para descobrir os amigos diretos e, na seqüência, como descobrir quais são os amigos indiretos de um perfil.

A contagem de amigos diretos é utilizada para atualizar a coluna QTD_AMIGOS da tabela Perfil, pois quando uma nova linha é inserida ou removida nesta tabela é necessário atualizar a quantidade de amigos diretos. Na primeira parte deste artigo foi dito que o valor para esta coluna pode ser obtido com uma instrução simples de contagem sobre a tabela Amigos, porém deve-se evitar executar esta instrução por questões de desempenho. Para obter um melhor desempenho, basta incrementar em um o valor da coluna QTD_AMIGOS toda vez que um perfil autorizar um novo amigo. Quando um perfil deixa de ser amigo ou é excluído, todos os seus amigos diretos devem reduzir em um a quantidade de amigos." [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados