Я пишу код, чтобы найти дубликаты данных о клиентах в базе данных. Я буду использовать расстояние Левенштейна.
Однако я не уверен, как хранить отношения. Я все время пользуюсь базами данных, но никогда не сталкивался с этой ситуацией и задавался вопросом, может ли кто-нибудь указать мне правильное направление.
Что меня смущает, так это как хранить двунаправленный характер отношений.
Я начал приводить несколько примеров ниже, но подумал, есть ли лучшая практика для хранения данных такого типа,
Пример данных
id, адрес
001, 5 Мейн-стрит
002, 5 Главный ул.
003, 5 Главная ул.
004, 6 High Street
005, Малая улица, 7
006, 7 Low St
Предложение 1
customer_id1, customer_id2, relations_strength
001, 002, 0,74
001, 003, 0,77
002, 003, 0,76
005, 006, 0,77
Недоволен этим подходом, так как он выводит односторонние отношения между customer_id1 и customer_id2. Если, конечно, я включаю все отношения в обе стороны, но это удвоит количество времени обработки и размер таблиц.
например, потребуется включить: 002, 001, 0,74
Предложение 2
customer_id, grouping_id
001, 1
002, 1
003, 1
005, 2
006, 2