Как хранить, что два клиента связаны?

При условии, что у меня есть простой client стол с колоннами id а также name заполнены следующими строками:

ID | NAME
01 | John
02 | Mary
03 | Smith
04 | George
05 | Allan

Я хочу хранить в своей базе данных, что Джон друг Мэри, кузнец а также Аллан.

Как я могу создать реляционную таблицу, чтобы связать этих клиентов?

В настоящее время я использую таблицу как:

CLIENT_A | CLIENT_B
01    |    02
01    |    03
01    |    05

С УНИКАЛЬНЫМ (client_a, client_b)

Но это также позволяет мне иметь повторяющуюся связь с обратными значениями столбцов.

CLIENT_A | CLIENT_B
02    |    01
03    |    01
05    |    01
01    |    02
01    |    03
01    |    05

Поэтому мне нужно проверить в PHP оба направления, чтобы найти мои отношения с клиентами и избежать дублирования записей.

Есть ли лучший способ сделать это?

1

Решение

Как @halfer сказал, что хорошим способом было бы проверить отношение, прежде чем создавать его.

т.е. когда вы попытаетесь вставить отношение, проверьте, не существует ли оно уже.

Да, это замедлит ваше сохранение, но обеспечит вашу последовательность.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]