如何存储双向关系
我正在编写一些代码来查找数据库中重复的客户详细信息。我将使用Levenshtein距离。
但是,我不确定如何存储关系。我一直在使用数据库,但从未遇到过这种情况,并想知道是否有人可以指出我正确的方向。
令我困惑的是如何存储关系的双向性。
我已经开始在下面提供一些示例,但想知道是否存在存储此类数据的最佳实践,
示例数据
id,地址
大街001号,5号
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
没有找到相关结果
已邀请:
3 个回复
摊揉售
这些数据最好存储在建议1,即
表中。虽然我们确实需要透视数据以使输出看起来像:) 在一个合适的联赛表中,有两组得分 - Home和Away - 所以桌子是对称的。但这不适用于此,因为
的编辑距离与
相同。但是,如果结果集包含镜像分数,它将使查询结果更直接。也就是说,对于记录
,
等,我们生成记录
,
。这可以在评分过程结束时完成。
当然,这主要是表现性的东西,所以它只需要用于显示目的,例如,将数据导出到电子表格。我们仍然可以以可读的方式获得地址5的所有分数,而无需使用简单的SQL语句来评分分数:
桑娠贯涤
剑哎