хранение файлов вне базы, т.е. в файловой системе, как реализовать?

Тема в разделе "Базы данных", создана пользователем Natik, 12 мар 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Natik

    Natik Писатель

    Регистр.:
    29 сен 2007
    Сообщения:
    8
    Симпатии:
    0
    Мне нужно указать ссылки в таблицах туда, где хранятся мои элементы базы, то есть в файловую систему, как это реализуется?
    То есть
    CREATE TABLE DRAWINGS
    ID int NOT NULL auto_increment,
    Drawing_name varchar(50) NOT NULL default '',
    / а теперь надо ссылку на файл в файловой системе - как это будет?????/
    PRIMARY KEY (id) ) TYPE=MyISAM AUTO_INCREMENT=1 ;
     
  2. Damaged

    Damaged Писатель

    Регистр.:
    20 ноя 2007
    Сообщения:
    9
    Симпатии:
    0
    Предположим стандарт /var/www-data/site/.
    Записывай ссылки в ячейки относительно рабочего пусти сайта. Например, images/img000.jpg и так далее.
    Все банально :)
     
  3. t00r.com

    t00r.com Создатель

    Регистр.:
    17 мар 2008
    Сообщения:
    30
    Симпатии:
    4
    у меня реализованно так:
    есть папка /var/www/t1 - это в конфиге корень файла юзеров - почему так, позже понятно будет
    далее - есть индексная таблица в sql - files - тупо user_id, file_name, act (активность - если 1 - живой, 0 - удалён - для юзера невидим, но файл на FS есть)
    в пхп при upload сначала файл падает в темп - потом ты с ним делаешь чё угодно если он залит - в /var/www/t1 есть подпапки юзеров - соответственно берёшь переменную из сессии по имени - смотришь - is директория exist - если есть - пишешь на аплоад, если нет - создаёшь папку и пишешь туда из темпа файл - для полной уверенности напиши функцию в хидере которая проверяет сессии и юзверь-папки.

    В принципе всё описал. Не забудь про .htaccess и mod_security)))
     
  4. everest

    everest

    Регистр.:
    20 дек 2006
    Сообщения:
    197
    Симпатии:
    20
    Согласен.
    Если нет нужны в абсолютных путях, то храним только относительный путь относительно скрипта работы с базой или от корня сайта...

    В противном случае вперед дописываем еще абсолютный адрес каталога
     
  5. alexzh

    alexzh

    Регистр.:
    13 сен 2006
    Сообщения:
    222
    Симпатии:
    88
    лучше скажите зачем вообще использовать такую связку - имхо она бессмыслена или все в файлах или все в базе! ессно кроме картинок или файлов которые юзер загружает т.к. если их много, то надо раскладывать по дирректориям а возможно вешать на другой домен...
    если база используется и от нее никуда не деться, то в нее пишется только имя картинки и все, никакие пути в базу писать не надо т.к. она растет и при определенных условиях поиск по ней будет затруднен - съест много ресурсов...
    имхо пути файлов может определять функция на основании например имени пользователя типа: имя - ВАСЯ, путь - В/А/С/Я/картинка.жпег и т.д. и т.п. из базы достает только имя файла....
     
    tty01 нравится это.
  6. StealthForce

    StealthForce Создатель

    Регистр.:
    3 дек 2007
    Сообщения:
    39
    Симпатии:
    3
    Если переход по ссылке на картинку и еще привьюшки, то хранить пути обязательно и в БД. При большом количестве... БД все равно быстрее выполняет запрос, тем более что он прост до упора (ни вложенности, ни много табличный). использовать файловую систему как по мне вообще изврат, это для логов оставляем, другое дело разборка регулярными выражениями входных данных из файла. Как аргумент - все серьёзные проекты привязаны к БД(не обязательно мускуль). Вот превьюшки точно обязательны:)
     
Статус темы:
Закрыта.