Xwab
Форумыnavigate_nextОбщие вопросы

Архитектура хранения файлов
Сообщения
Aliveon2

Здраствуйте.
Название возможено слишком умное)

У меня появилась проблема с хранением файлов, а точнее их роспределение по папкаам.
Вот мой вариант:

Есть запись с id 2842 например.

$numberData=sprintf('%06d',2842);
echo' /'.substr($numberData,-3,3).'/'.substr($numberData,-6,3).'/'.$numberData;

Хранится по папкам /842/002/002842/FILE.FILE
первые три цыфры (842) берутся с конца (с конца потому что роспределение будет ровномерно) , следующие три цыфры (002) берутся с четвертой по шестую цыфру.

В каждой папке будет всегда макс по 1000 папок.

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

10 Фев 2012, 15:32
Febian

А подобная архитектура вообще того стоит?  Зачем по 1к папок то? Объясни сам принцип задумки, может тогда что и посоветуют..

10 Фев 2012, 15:37
TOOZ

А почему бы не иметь одну папку и в БД хранить ID,имя_*md5* и по при скачивании извлекать имя файла которое ты будешь скачивать с той самой, одной единственной, папки?

10 Фев 2012, 15:43
Aliveon2

Надо просто хранить несколько изображений в папке.
Я их в папке храню в виде 1.gif,2.gif....
Все очень просто.
Записей ~50 000 пока что.
И для каждой записи по несколько файлов.

10 Фев 2012, 16:51
Febian

Зачем для нескольких файлов такая вложенность?

10 Фев 2012, 16:54
Aliveon2

Febian пишет:
"Зачем для нескольких файлов такая вложенность?"


Твой вариант?
Ограничение есть 32к в папке.

10 Фев 2012, 16:58
Febian

Ок, только я пока еще не понял самой сути.. Эти папки для хранения файлов пользователя, и для каждого пользователя своя директория, я правильно понял?

10 Фев 2012, 17:32
Aliveon2

Febian пишет:
"Ок, только я пока еще не понял самой сути.. Эти папки для хранения файлов пользователя, и для каждого пользователя своя директория, я правильно понял?"

Ето папки не для пользевателей.
Страницы статические.
Чет типо рефератов с изображениями. Картинки не будут удаляться.
Также есть записи которые имеют только одну картинку, есть записи только с текстом.
Я зделал для каждой записи по папке где записи требуют изображений.
Записи с одной картинкой (скриншт) сохранялся так: /files/id записи/1.gif
Если запись требует несколько изображений сохранялся как: /files/id записи/номер картинки.gif

Но потом появилось ограничение на количество папок в папке, папок стало >32 000 папок.

Щас надо переделать архитектуру как файлы хранить.
Вот и мучаюсь как лучше будет(

10 Фев 2012, 17:49
kos

за сколько времени были заняты 32 000 папок?

10 Фев 2012, 17:51
Aliveon2

kos пишет:
"за сколько времени были заняты 32 000 папок?"

За месяц

10 Фев 2012, 17:56
Ответить на тему