2015-08-26 3 views
1

У меня есть том, где мне нужно хранить пути к файлу в базе данных. Тем не менее, пути к файлу длиннее максимальной длины для индекса mysql, поэтому я не уверен, как я могу их хранить и обеспечить уникальность. Пример пути будет:Как сохранить уникальный путь к файлу в базе данных, слишком длинный для уникального ключа

/Volume/00_ARCHIVE/Discovery/Alaska_The_Last_Frontier/2014-01-01/Alaska_The_Last_Frontier/DISC00000000927664/DISC00000000927664.mp4 

Как я мог хранить это в MySQL и обеспечить уникальность на пути? Причина, по которой мне нужно это сделать, - увидеть, какие пути были удалены (путем выполнения набора diff), какие пути уже существуют (путем объединения) и какие пути являются новыми. Как я могу хранить это?

Моя первая мысль - сохранить контрольную сумму md5 пути?

ответ

1

Просто хэш его. MD5 или SHA1 просто отлично, так как вам не нужно беспокоиться о безопасности здесь.

+1

Это кажется простейшим решением. Я имею в виду, что технически два из путей к файлам [могли иметь тот же MD5] (http://www.mscs.dal.ca/~selinger/md5collision/), но это маловероятно. Вы также ищете уникальность строк, которая немного медленна в миллионах таблиц строк. Но самое быстрое решение. Сделайте MD5 и просто сохраните фактический путь открытого текста в другом столбце для справки. – DACrosby

+0

@DACrosby Точно. – pilsetnieks

Смежные вопросы