[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обращение в TXT или к MySQL
littleman
Хотелось узнать, как лучше сделать, обращаться за данными к TXT быстрее или SQL ?
Я отдаю файл юзеру , и идёт запись в БД +1 (но также идёт запрос сколько скачиваний), я вот подумываю, а не легче сделать это в TXT в той же папке где храниться сам файл , и название совпадает , оттуда доставать сколько с качалось + 1 если кто-то скачивает.
По сути не какой выборки , как данные они не нужны при утере , не столь важны .
Arh
Похоже на кэширование)
Если есть файл с данными достать данные из него, или достать данные из базы и создать файл кэша.
В принципе можно в файле и массив хранить с описанием файла и колличеством его скачиваний.
serialize()

то есть из базы будет
$file = $db->query();

а из файла будет
$file = unserialize(file_get_content('url'));



_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
littleman
Arh
Цитата

В принципе можно в файле и массив хранить с описанием файла и колличеством его скачиваний.

Можно примерчик , да это на кеширование похоже, так как заходя на сайт выдаётся кеш страницы , а обновление требует только download .
Вот и думаю , зачем туда делать запрос , запрос , вывод и тд.

Гуд , ща что-то придумаю .
Arh
А если массив хранить в TXT, там файло 1000 или более (записать), так я думаю с выборкой траблы будут.
AllesKlar
littleman
Когда-то ты захочешь просмотреть статистику.
И ужаснешься, перебирая тысячи файлов из созданной файло-помойки.

Спустя время ты захочешь вести учет для каждого пользователя, и сделаешь еще по одному файлу для каждого файла с именем пользователя, скачавшего его (геометрическая прогрессия).

Спустя время ты захочешь делать срезы статистики по времении / объему / устанавливать лимиты для скачиваний.

Спустя еще время, ты захчешь секса, но времени не будет, да и сил, нужно будет разгребать 100500 милионов файлов с флагами.

И тогда ты вскрикнешь: "НУ ПОЧЕМУ??? ПОЧЕМУ мне тогда никто не надовал по рукам???"

Если же у тебя впринципе не стоит вопрос расширения, и нужно исключительно счетчик скачиваний, и никогда больше не нужно будет, то конечно же незачем городить базу. Но и для каждого файла создавать собственный файл со счетчиком - глупость.

PHP располагает множеством инструментов обработки данных, XML, например. Храни все в одном xml. SimlpeXML - проще некуда

_____________
[продано копирайтерам]
Arh
Допустим есть функции.
Конечно надо в них добавить различные проверки типа существует ли файл и есть ли права на запись и создана ли папка нужная и в обще это лучше сделать методами класса =)

#Сохранение кеша
function cache_set ($key = '', $val = array()) {
$file = 'cache/'.md5($key).'.cache';
return file_put_contents($file,$val);
}

#Получение кеша
function cache_get ($key = '') {
$file = 'cache/'.md5($key).'.cache';
return file_get_contents($file);

}

#Удаление кеша
function cache_del ($key = '') {
$file = 'cache/'.md5($key).'.cache';
unlink($file);
}


Вся информация о файле, его описание, дата загрузки и все такое храниться в базе данных.

Вы запрашиваете инфу о файле обычно так наверно.
$file = $db->query('SELECT')->fetch();

Потом выводите в шаблон.
echo $file['name'].' - '.$file['desc'];


С кэшем будете сначала смотреть, есть ли кэш, если нет, то делать запрос в базу.

if(!$file = unserialize(cache_get('ид файла или его имя или хз'))) {
$file = $db->query('SELECT')->fetch();
cache_set('ид файла или его имя или хз',serialize($file));
}

echo $file['name'].' - '.$file['desc'];


В условии вы получаете массив из файла, если не получили, тогда посылаете запрос в базу и создаёте файл с кэшем. Потом выводите в шаблон.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.