При условии, что у меня есть простой 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 оба направления, чтобы найти мои отношения с клиентами и избежать дублирования записей.
Есть ли лучший способ сделать это?
Как @halfer сказал, что хорошим способом было бы проверить отношение, прежде чем создавать его.
т.е. когда вы попытаетесь вставить отношение, проверьте, не существует ли оно уже.
Да, это замедлит ваше сохранение, но обеспечит вашу последовательность.
Других решений пока нет …