假设我有一本包含成对比较的字典:
dict_of_dict = {"apple":{"apple":1, "orange":.5, "banana":.7}, "orange":{"orange":1, "apple": .3, "banana":.8}, "banana":{"banana":1, "apple":.7, "orange":.8}}
每个嵌入式字典可以包含约 20 万个条目。
在 MySQL 中存储它的一种(可怕的)方法是创建两个表fruit和fruit 映射,其中fruit存储每个水果的id,而fruit 映射存储每个成对的分数。
fruit是一个带有 id 和 fruit 的两列表:
fruit_id fruit
0 apple
1 orange
2 banana
水果映射将水果的 id映射到每个成对比较的分数。
fruit_id_A fruit_id_B score
0 0 1
0 1 .5
0 2 .7
...对于fruit_ids 1 和2 以此类推。在处理约200k 个条目时,您会看到明显的问题。在实际应用中,我们不会有 ~200k**2 行,因为只比较了水果的一个子集,但即使假设 50,000 个水果获得的分数也会给我们 10,000,000,000 行。有人有更好的方法吗?