Краткое описание:
Требуется решение алгоритма хеширования в php для большого количества текстовых значений.
Длинное описание.
PRODUCT_OWNER_TABLE
serial_number (auto_inc), product_name, owner_id
OWNER_TABLE
owner_id (auto_inc), owener_name
Мне нужно вести базу данных из 200000 уникальных продуктов и их владельцев (И все последующие изменения в собственности). У каждого продукта есть один владелец, но у владельца может быть МНОГО разных продуктов. Имена владельцев - «Адам Смит», «Джон Ривз» и т. Д., Только текстовые значения (вполне вероятно, также и в Юникоде).
Я хочу оптимизировать структуру базы данных, поэтому я думал, что каждую неделю, когда я запускаю этот скрипт, он выбирает владельца гордости, а затем проверяет таблицу, которая, как мне кажется, похожа на PRODUCT_OWNER_TABLE, выбирает owner_id. Затем он ищет owner_id в OWNER_TABLE. Если это совпадает, то это то же самое, поэтому он движется дальше. Проблема в том, когда все по-другому ...
Чтобы оптимизировать базу данных, я думаю, что я должен проверить другие записи "owner_name" в OWNER_TABLE, чтобы увидеть, существует ли там это значение. Если это так, то я должен использовать этот owner_id. Если это не так, то я должен добавить еще одну запись.
Обратите внимание, что в названии нет ничего особенного. до тех пор, пока я поддерживаю правильные ссылки и создаю таблицу типов OWNER_TABLE "только для чтения, добавление-добавление", я могу создавать исторический архив владения.
Мне нужно выполнить эту проверку для 200000 записей, при этом я не знаю, сколько уникальных имен владельцев (~ 50000?). Я думаю, что мне нужно решение для хеширования - OWNER_TABLE не будет отсортирован, поэтому алгоритмы поиска не будут оптимальными.
язык программирования - PHP. база данных MYSQL.