Цитата ManHack:
А для каждой папки придётся сделать отдельную таблицу? »
|
Нет, всё в одну можно.
Примерно такие поля в таблице (пусть будет
main для примера):
[ id | folder | filename | size | vendor | group | link ]
Достаточно? Можно и ещё добавить.
3 уровня вложенности - "не понимать")
Если выбирать по id, то такой код:
PHP код:
// $_GET['id'] будет содержать запрос на необходимый файл
$res = mysql_query("SELECT * FROM main WHERE id='" . $_GET['id'] . "'");
$res = mysql_fetch_assoc($res);
echo $res['folder'] . "/" . $res['filename']; // использование
При добавлении:
PHP код:
$lastfolder = 224; // где-то надо хранить имя последней папки
$files_in_last_folder = 35; // количество файлов в последней папке. Тоже где-то надо хранить
if ($files_in_last_folder >= 100)
{
$lastfolder++;
$files_in_last_folder = 1;
}
if (mysql_query("INSERT INTO main ('folder', 'filename', 'size', 'vendor', 'group', 'link') VALUES (" . $lastfolder . ", 'dkfueu.jpg', 127500, 'nya', 'mur', 'link12834')))
{
echo "Запись о файле добавлена";
}
Ну и не забываем сам файл в папку записать.
Цитата ManHack:
Кстати, сколько записей может выдержать таблица? А какое количество оптимально? »
|
Выдержать может до 2 ГБ информации на таблицу или даже больше. Я не помню точно. Вопрос в том - даст ли хостер столько? Кроме того, нужно учитывать и нагрузку. 1 запрос в секунду - это совсем не то же самое, что 100 в секунду (здесь уже выделенный сервер нужен и СУБД помощнее. Например, PostgreSQL. Yahoo, говорят, на ней работает).
Цитата ManHack:
Под терминов 'кореллированный подзапрос' что понимается? »
|
Не обращайте внимания, я сегодня экзамен по базам данных сдавал, поэтому голова забита терминологией Это подзапрос на ту же таблицу, куда и основной запрос. Можно и без них