Если я хочу связать контент в базе данных с файлом, что я могу использовать для уникальной ссылки на файл в базе данных, отличный от файла или имени даты создания / изменения, которое может измениться. Есть ли что-то еще, что является уникальным для файла, которое не изменится и может быть использовано для ссылки на файл в базе данных?
Я хочу сослаться на данные содержимого базы данных, которые соответствуют медиа-файлу m3u8, поэтому при воспроизведении файла содержимое базы данных извлекается и отображается. Я хочу иметь возможность изменить имя файла m3u8 и изменить его содержимое, поэтому мне нужно сослаться на файл, используя что-то отличное от имени файла или mtime.
Я, вероятно, получу отрицательный голос, но я просто должен поделиться.
Я обычно исправляю это time()
потому что почти нулевая возможность иметь дублирующую запись time()
(если каким-то чудом обработка двух файлов не происходит в один и тот же отрезок времени).
Я не останавливаюсь на достигнутом, иногда я добавляю имя пользователя в строку вместе с другим случайным кодом, который делает его практически защищенным от дубликатов (вероятность близка к нулю).
Допустим, имя файла super-awersome-pdf-file.pdf
, я добавить time()
(который является строкой) перед ним, затем некоторые другие вещи. Это имя файла само становится уникальным идентификатором. Кроме того, я также храню информацию в таблице базы данных, чтобы дать ей еще один уникальный идентификатор. Поэтому у меня есть две вещи для работы.
Сохраняя имя файла менее 60-70 символов, вы можете сделать несколько довольно уникальных имен файлов таким образом. Затем вы можете добавить информацию об этом в базу данных.
Pro:
Почти никогда вы не получите повторяющееся имя файла
Против: однако это может создать дубликаты файлов, поскольку система увидит, что два файла имеют разные имена файлов.
Таким образом, нет повторяющегося имени файла, но, вероятно, если пользователь не заботится о некоторых дубликатах файлов.
Надеюсь это поможет.
Других решений пока нет …