To je pravděpodobně příliš zastaralé na to, aby bylo užitečné, ale zveřejním to, pokud to pomůže ostatním!
Ukládám neorientované grafy jako váš druhý příklad a mám omezení, že node_a musí být menší než node_b. Potom triviálně umístíte UNIQUE
omezení na pár a vědět, že data jsou konzistentní. Dotazy musí pracovat o něco více, když porovnávají hodnotu node_a s menší z {a,b} a node_b druhou hodnotou. PostgreSQL (DB, kterou znám nejlépe) poskytuje GREATEST()
a LEAST()
funkce, které zde pomáhají.