我已经学过一些hash-join algorithms,并且我知道通常有一些哈希表,其键是由哈希函数计算的。我想知道是否可以省略哈希函数,而仅使用值代替?
例如,表user_table
[{"name": "tom", "id": 1}, {"name": "jerry". "id": 2}]
加入score_table
[{"score": 5, "id": 1}, {"score": 7, "id": 2}]
在id
我可以只使用键id
作为哈希表键吗?这样我就可以保存哈希函数的计算。
或者说哈希函数有很多种
def hash(id):
return id
是其中之一吗?
还有其他需要应用哈希函数的需求吗?
从与@OmG的讨论中,我知道至少在多个键联接中,必须有一个哈希函数来计算键。
答案 0 :(得分:0)
它返回到哈希联接算法的定义。实际上,在哈希联接算法中使用哈希函数的原理支持更有效地处理联接属性。这里,在您的特定情况下,由于联接上没有任何额外的属性,仅使用唯一ID即可,因此不再需要任何哈希函数,或者换句话说,哈希函数可以是恒等函数。
但是,您应该注意到,该解决方案是特定于域的解决方案,如果没有更复杂的哈希函数,就不能将其推广到更复杂的情况下。