2012-04-05 2 views
1

У меня есть сайт с большим количеством фотографий в нем. В настоящее время у меня есть все фотографии на сервере, и я использую php для получения файлов в каталоге и отображения их всех одного в таблице. Однако, когда я делаю это, изображения отображаются в алфавитном порядке, чего я не хочу. Я хочу, чтобы они отображали мое время ввода. Который я думал, что могу создать таблицу с полем числа, установленным для автоматического приращения, а затем имя файла вставленного изображения. и просто оставьте фотографии на сервере. Поэтому каждый раз, когда я вставляю изображение, он вставляет строку с номером и именем файла. Поэтому, когда я показываю, я просто показываю на этом номере Desc, который должен дать мне снимки с помощью новейших вставленных. Это лучший способ сделать это?Лучший способ реализовать таблицу рисунков в моей базе данных

Thanks

ответ

0

Вы на правильном пути. Я бы использовал временную метку (типа DATETIME), чтобы точно определить, когда была загружена фотография, и сортировать по ней. Инкрементный идентификатор не всегда соответствует времени вставки.

+0

Я не вижу необходимости в этом. Сортировка по фактической дате создания файла в файловой системе должна быть достаточной. Нет необходимости в другом столе. – Icarus

+0

Наличие таблицы информации о файлах, которые вы вводите в файловую систему, всегда является хорошей идеей. То, что вы делаете с этой информацией, - это другое. Да, вы можете сортировать по метке времени, но наличие таблицы является более надежным решением. –

0

Вы можете сделать это с помощью поля auto_incremented id, или вы можете сохранить временные метки и заказать их таким образом. Любой из них - хороший вариант, просто убедитесь, что вы избегаете потенциальных нарушений первичного ключа.

2

Звучит неплохо для меня. Если вы действительно хотите получить техническую информацию, вы можете использовать поле timestamp и заказать их. Тем не менее, похоже, что ваша идея будет работать нормально, пока вы автоматически увеличиваете число вставляемых изображений.

+0

Тип данных временной метки также может по умолчанию использовать current_timestamp. – mqsoh

0

С filemtime() вы получаете временную метку файла. Таким образом, можно определить порядок с uasort() - или одну из других функций сортировки php - после того, как вы получите файлы с (например) readdir(). Для этого не требуется база данных.

0

Хранение указателя на файл в вашей базе данных будет лучшим способом для этого и иметь изображения в файловой системе. Что касается созданной даты, вы можете использовать DATETIME, чтобы отслеживать время ее создания и затем запрашивать их в том порядке, в котором вы хотели.

0

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

0

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

Выполнение 10000 операций ввода-вывода для сортировки файлов по дате - это орехи. Выполнение одного SQL-запроса для возврата списка всех имен файлов, упорядоченных по дате, намного лучше, поскольку MySQL, вероятно, сможет разместить всю таблицу в памяти.

table image 
{ 
    id 
    user_id (if images belong to certain users) 
    path (the file system path and/or filename) 
    created (timestamp) 
}