Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL armazenando arestas de gráfico não direcionadas de forma eficiente


É provável que isso esteja desatualizado demais para ser útil, mas postarei caso ajude outras pessoas!

Eu armazeno gráficos não direcionados como seu segundo exemplo e tenho uma restrição de que node_a deve ser menor que node_b. Você então coloca trivialmente um UNIQUE restrição no par e saber que os dados são consistentes. As consultas têm um pouco mais de trabalho comparando node_a com o menor de {a,b} e node_b o outro valor. PostgreSQL (o banco de dados que conheço melhor) fornece GREATEST() e LEAST() funções que ajudam aqui.