Я пишу код, чтобы найти повторяющиеся данные о клиентах в базе данных. Я буду использовать расстояние Левенштейна.
Однако я не знаю, как сохранить отношения. Я постоянно пользуюсь базами данных, но никогда не сталкивался с этой ситуацией и задавался вопросом, может ли кто-нибудь указать мне правильное направление.
Что меня смущает, так это то, как сохранить двунаправленный характер отношений.
Я начал приводить несколько примеров ниже, но задался вопросом, есть ли лучшая практика для хранения этого типа данных,
Примеры данных
id, адрес
001, 5 Main Street
002, 5 Main St.
003, 5 Main Str
004, 6 High Street
005, 7 Low Street
006, 7 Low St
Предложение 1
customer_id1, customer_id2, Relationship_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