Связывание идентификаторов базы данных и файлов - PullRequest
0 голосов
/ 11 сентября 2011

Скажем, я использую MySQL, и у меня есть идентификатор столбца, который является моим первичным ключом в некоторой таблице. В PHP я генерирую случайную строку / целое число и сохраняю это как идентификатор в моей базе данных. Затем я указываю этот идентификатор как имя для моего файла везде в моем коде (насколько я знаю, он всегда будет уникальным).

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

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

=== РЕДАКТИРОВАТЬ ===

Позвольте мне уточнить, что я прошу дальше. Я храню идентификатор некоторого изображения в моей базе данных. Прямо сейчас я знаю, что все имена изображений совпадают с идентификатором и что они хранятся в скажем / 123img45. Поскольку я знаю их местонахождение прямо сейчас, я не беспокоюсь о сохранении пути к файлу, но позже в процессе разработки я могу изменить базы данных или изменить имя папки и т. Д. *

Стоит ли хранить путь? Или лучше пересечь этот мост, когда вы доберетесь до него

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

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

Если вам необходимо сохранить полный путь в будущем, легко обновить базу данных, чтобы позже добавить полный путь, если вам нужно по какой-либо причине.

1 голос
/ 11 сентября 2011

Вы можете хранить только идентификатор файла, если ваши файлы всегда находятся по известному пути или в наборе или известных путях и могут решить, что путь содержит каждый идентификатор.Идентификатор должен быть подходящим именем файла (без '\', '/' и других символов) и должен быть уникальным (убедитесь, что генерация идентификатора не может сгенерировать тот же идентификатор через некоторое время, когда произойдет столкновение).

...