• Какую вы используете структуру для хранения изображений?

    @Sunsh1ne
    Только недавно интересовался этим вопросом.
    Уточню, для начала, что я пользуюсь готовым решением для работы с изображениями, и вам советую)
    Сделал так:
    1. Надо определится, сколько изображений будет в перспективе проекта.
    Если будет 100 и через 5 лет существования проекта, то тогда ничего сложного изобретать не надо.
    Если же больше, то тут нужно будет раскидывать их по папкам.
    Ориентировочно для себя, я прикинул, что у меня в папке будет хранится примерно 20 фотографий.
    А в проекте, я для себя установил планку в примерно 9000 изображений + их копии 300х200. и тут подсчёты.
    9000*2/20 = 900 папок.
    На самом деле 20 фотографий это даже маловато... Но эту цифру я выбрал по личным соображениям.
    Такой код генерации:
    $rand_int = rand(1,5);
    $rand_md5 = md5(str_random(rand(6,15)));
    $dir = '/images/uploads/minerals/' . $rand_int . '/' . $rand_md5[0] . '/' . $rand_md5[1] . '/';

    Если посчитать потенциальные папки последнего уровня, то получится 1280. Вроде)) Мне надо столько как раз с запасом.
    Как это получилось:
    По коду понятно, что после папки minerals будет папка с именем в промежутке от 1 до 5.
    Далее будет папка с именем в промежутке символов md5 хэша, а то есть: 0123456789abcdef.
    Если я не ошибаюсь!!..
    и имя последней папки случайно в том же самом промежутке символов.
    Итого 5*16*16 = 1280. Потенциальных, заметьте, папок.
    Все пути сохраняются в бд. И оригинального и превью изображений.
    Можно играться с количеством вложенных папок, со словарём для генерации, не ограничиваясь только символами md5, можно имена папкам давать из 2-х символов и больше. Всё зависит от ваших потребностей, я лишь показал способ.
    Если в названии папки будет 2 символа и больше, то считается по другому.
    Ответ написан
    Комментировать
  • Как составить sql запрос для выборки статей и комментариев из связанных таблиц?

    @Sunsh1ne Автор вопроса
    Хотелось бы узнать, кто как делает, может структура неверна?
    Но хотелось бы, что бы возвращалось так:
    [
    [данные первой статьи, [первый комментарий, второй, ...]],
    [вторая статья, [...]],
    ...
    ]

    И еще, если комментариев нет к статье, возвращается ответ, но в полях про комментарий везде null
    Ответ написан