====== Управление закачками файлов (исходников) ====== Для того, чтобы приступить к решению вопроса, нужно определиться с: * определением БД информации о файлах * файловой иерархией поступаемых файлов * файловой иерархией архива файлов ===== Определение БД информации о файлах ===== Выделим сущности, на основании которых можно создавать базу данных. ==== Поля ==== * **SrcName** - Название программы/проекта * **Author** - Автор * **Email** - Координаты (эл. почта) * **Category** - Категории, к котороым относится программа/проект, через запятую * **License** - Лицензия распространения (GPL,LGPL,MPL,BSD,Creative Commons,Copyleft,...) * **BriefDesc** - Короткое описание (у заголовка) * **FullDesc** - Полное описание * **DateUploaded** - Дата закачки * **Keywords** - Ключевые слова через запятую * **Rating** - Рейтинг пользователей * **Comments** - Комментарии пользователей (?) * **SrcSize** - Размер файлов программы/проекта в КБ. Этих данных должно быть достаточно для того, чтобы находить по ним путь к файлам искомой программы. ===== Файловая иерархия поступаемых файлов ===== В корневой папке **Incoming** будут помещаться папки с именем формата времени //yyyymm// (закачки за период одного месяца), внутри которых будут размещаться папки с названием программы/проекта, в которых, в свою очередь, должны находиться прилагаемые файлы. Структура директорий: Incoming/yyyymm/%sourcename%/sourcefiles ===== Файловая иерархия архива файлов ===== В корневой директории **SrcArchive** будут помещаться директории с именем формата времени //yyyy// (закачки за период одного года), внутри которых будут размещаться директории с названием программы/проекта, в которых, в свою очередь, должны находиться прилагаемые файлы. Структура директорий: SrcArchive/yyyy/%sourcename%/sourcefiles ===== Добавление новой программы ===== - Заполняются поля данных о программе. Если не указана категория, то по умолчанию она принимается как "Разное". - Получение пути для сохранения программы - Перемещение файлов в директорию архива - Добавление записи в БД ==== Получение пути для сохранения программы ==== === Входные данные === * поле SrcName * текущий год - yyyy * путь к месту хранения временных файлов, содержащий файлы программы === Выходные данные === * путь к месту хранения файлов в директории SrcArchive. ==== Добавление записи в БД ==== INSERT INTO tablename VALUES (...) ===== Выборка списка программ из БД ===== - Выбор критериев поиска - Получение ответа на запрос ==== Выбор критериев поиска ==== Выбираются критерии поиска: по имени, по дате, типу лицензии и т.д. ==== Получение ответа на запрос ==== SELECT ... FROM tablename WHERE ...