Может ли алгоритм хеш-соединения не иметь хеш-функции? - PullRequest
0 голосов
/ 21 мая 2019

Я изучил некоторые из алгоритмов хеш-соединения , и я знаю, что обычно есть хеш-таблицы, ключи которых вычисляются хеш-функцией. Мне интересно, можно ли опустить хэш-функцию и просто использовать вместо нее значение?

Например, таблицы 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

один из них?

Есть ли еще какие-то потребности, чтобы я применил хеш-функцию?

UPDATE

Из обсуждения с @OmG я знаю, что по крайней мере при соединении с несколькими ключами должна быть хеш-функция для вычисления ключа.

1 Ответ

0 голосов
/ 21 мая 2019

Возвращается к определению алгоритма хеширования. На самом деле, философия использования хэш-функции в алгоритме хэш-соединения основана на более эффективной обработке атрибутов соединения. Здесь, в вашем конкретном случае, так как у вас нет каких-либо дополнительных атрибутов в соединении, и вы просто используете уникальный идентификатор, вам больше не нужна хеш-функция или, другими словами, ваша хеш-функция может быть функцией идентификации.

Однако вы должны заметить, что это решение является решением для конкретной области и не может быть обобщено для более сложных случаев без более сложной хеш-функции.

...