Просмотр поста

.
Chifty
Добавлено: 08.09.2018 / 08:02
Остановился ещё на стадии планирования куда лучше писать хэш - в дополнительное поле к загрузке или в отдельную таблицу. Чтобы оптимальнее по нагрузке.
И как потом сгенерировать хэш для уже имеющихся файлов?
А насчёт поиска по имени я что-то не разобрался как искать совпадение нескольких символов подряд, если обе строки разные по длине и совпадение может быть в разных концах строк. (такой поиск вообще возможен?)

Добавлено: 08.09.2018 / 10:49
Короче придумал я как примерно оно будет.
Будет отдельная таблица: ИД загрузки / РЕФИД дополнительного файла (если есть) / ИМЯ загрузки или дополнительного файла / РАЗМЕР в байтах / ХЕШ
По алгоритму: При выгрузке файла сравнивается размер в байтах, если совпадений меньше 3, выводим предупреждение с списком совпадений и кнопкой "Продолжить". Если больше 3 - сравниваем хэш-суму с совпадающими строками из списка, если есть совпадение - выводим предупреждение с ссылкой на дубль икнопкой "отменить", если нетсовпадений - выполнять скрипт заливки дальше.

Приветствуется разумная критика
Может вообще хэш добавить сразу в таблицу с загрузками? (Хотя туту меня несколько вопросов:
В download__files нет поля size, в downloads__more - есть. Хотя из первой таблицы размер файла откуда-то берётся.
Не слишком ли напряжно будет MySQL соединять две полных таблицы (обьем получится большой. например если 100к файлов. и еще 300к дополнительных файлов)
Какие поля в новой таблице надо будет индексировать? я с оптимизацией на ВЫ
Может я много лишнего предлагаю в своем алгоритме? Просто бывает например 2 версии файла, полностью одинаковых по размеру, но с разным MD5. А по сути, это один и тот же файл... Или такого не может быть?