Executando verificação de segurança...
3

Como Você Programaria Isso? o tabnews... Usaria o Neo4j

O #Neo4j é um banco de dados de grafos que permite armazenar e gerenciar dados em forma de nodos e relacionamentos.
Ele é ideal para aplicações que precisam de uma representação visual de dados, como redes sociais, sistemas de recomendação e análise de dados de mídias sociais. enquanto o #SQL armazena dados em tabelas com colunas e linhas.

relacional vs grafo

  • No Neo4j, as entidades são representadas por nós, enquanto no SQL são representadas por tabelas.
  • No Neo4j, as relações entre as entidades são representadas por arestas, enquanto no SQL são representadas por chaves estrangeiras.
  • No Neo4j, cada nó pode ter suas próprias propriedades, enquanto no SQL as colunas de uma tabela devem ter o mesmo tipo de dados.
  • No Neo4j, é possível criar relações muitos-para-muitos com facilidade, enquanto no SQL isso geralmente exige a criação de uma tabela adicional para armazenar as relações.

É importante considerar as necessidades da aplicação e escolher a ferramenta mais adequada. esse é um exemplo de comparação onde o uso é a quantidade de JOIN

comparando velocidade da query sql vs neo4j

O Neo4j é especialmente eficiente para buscar dados com muitas conexões e relações, ultiliza a linguagem consulta Cypher para facilitar a expressão de consultas complexas em grafos. Por outro lado, o SQL é mais adequado para armazenar dados em tabelas relacionais e é mais eficiente em consultas que se concentram em dados específicos em uma ou poucas tabelas.

Caso tenha interece recomendo o AuraDB a cloud do Neo4j https://console.neo4j.io e esse é um codigo de exemplo:

CREATE (u:USER {
    cod:123, 
    Name: 'Eduardo Ritter', 
    Email: '[email protected]', 
    date_created: datetime("2022-12-01T10:50:02.292+0200")
})

CREATE (p:POST {
    Title: 'Como Você Programaria Isso? o tabnews... Usaria o Neo4j', 
    Body: 'teste...123...', 
    date_created: datetime("2022-12-16T09:40:32.142+0100")
}) 

CREATE (u)-[rel:POSTED {
    date_posted: datetime("2022-12-16T09:40:32.242+0100")
}]->(p)  

RETURN u,p
Carregando publicação patrocinada...
2

Bem interessante, principalmente a tabela de performance.
Você já trabalhou com algum software em produção usando ele? Se sim, qual era o volume de dados/usuários/etc?
Obrigado pelo post, amigo.

1

Eu recentemente participei de um projeto de grande escala em produção para uma comunidade de vídeo on-line. Neste projeto, cada usuário é representado por um vértice em um grafo e os comentários dos usuários são representados por outros vértices que são ligados por arestas. Acredito que isso pode ser útil para a plataforma do Tabnews, pois pode criar uma referência de palavras e melhorar as buscas no futuro quando houver muitos artigos.

Isso é similar ao que a Wikipedia faz com o software MediaWiki, que é utilizado pela Wikipedia, armazena as informações em um banco de dados relacional, mas também inclui recursos para armazenar e gerenciar informações em um grafo, utilizando a extensão Graph extension, permite que a Wikipedia crie vértices e arestas no grafo para representar páginas e ligações entre elas, respectivamente, e também permite que a Wikipedia faça perguntas complexas sobre como as páginas estão relacionadas entre si e faça recomendações de leitura adicionais para os leitores baseadas nas ligações entre as páginas.

Oque acha? se quiser podemos tracar mais ideia sobre isso e posso mostrar o volume no projeto que comunidade que tenho aqui.