[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: регистрация пользователей на файлах
gletscherl
подайте пожалуйста идею, как реализовать



Спустя 18 минут, 33 секунды (15.05.2009 - 12:15) waldicom написал(а):
Хранить имена и пароли в файле в определенном формате, например через двоеточие или TAB.
При регистрации писать в файл, при логине читать все из файла и сравнивать значения с теми, что были введены.

Спустя 7 минут (15.05.2009 - 12:22) gletscherl написал(а):
ок, спасибо

Спустя 12 минут, 43 секунды (15.05.2009 - 12:34) glock18 написал(а):
Только зачем тебе это? По-любому, если пользователей много будет, то работать будет ооочень медленно.

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

А вообще лучше не извращаться так, а хранить в базе.

Спустя 2 часа, 15 минут, 11 секунд (15.05.2009 - 14:50) FatCat написал(а):
Цитата (glock18 @ 15.05.2009 - 12:34)
По-любому, если пользователей много будет, то работать будет ооочень медленно.

Не по-любому...
Информация о пользователе:
    ID
    логин
    пароль
    датарегистрации
    допинфо
Айдишник служит именем файла; для удобства файлы регистрации раскладываются в директории по 1000 штук.
PHP
function create_userinfo($id$info)
{
    
$path = ($id-$id%1000)/1000;
    
$path DASE_DIR."logins/".$path."/";
    
$file $id%1000;
    
$file $arc_path.$arc_file.".ext";
    if(
file_exists($file))die("Такой пользователь уже существует");
    if(
$info != "")
    {
        
$fh fopen($file"w");
        
fwrite($fh$info);
        
fclose($fh);
    }
}


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

Спустя 1 час, 58 минут, 46 секунд (15.05.2009 - 16:48) glock18 написал(а):
Да, это позволит серьезно снизить оверхэд...

Ну, а что если, скажем, будет 200000 пользователей... неужели, файл с id и логинами будет таки быстро парситься? Мне все таки кажется, что построчное считывание и сравнение на каждой итерации будет служить понижению скорости. При 200000, возможно, заметному. Хотя, конечно, могу ошибаться. Но тогда можно и число побольше предложить)))

Впрочем, если это частоприменяемая практика, то, возможно, все не так плохо, как мне видится.

Спустя 4 минуты, 19 секунд (15.05.2009 - 16:53) waldicom написал(а):
При правильном выборе алгоритма сортировки сложность будет O(n log n), а это уже более менее.
Хотя я думаю, что это очень редко применяемая практика.

Спустя 26 минут, 39 секунд (15.05.2009 - 17:19) FatCat написал(а):
Цитата (glock18 @ 15.05.2009 - 16:48)
Ну, а что если, скажем, будет 200000 пользователей... неужели, файл с id и логинами будет таки быстро парситься?

Быстрее, чем запрос к MySQL-таблице на такое же количество записей. Ибо таблица, по сути, тоже файл, и при больших размерах базы критическим становится время считывания с винчестера.
Владельцы собственных серверов могут отдать sql хоть гиг оперативы, и там закешировать таблицу. А на шаредах такое разделение позволит сэкономить.

Предположим, средний размер логина 10 символов, плюс 6 символов айдишник, плюс 2 символа разделители. Файл на 200 000 регистраций будет весить всего 3.6 Мб.

Спустя 7 часов, 35 минут, 9 секунд (16.05.2009 - 00:55) lawbreaker написал(а):
FatCat
когда я читаю твои коды, то у меня мозги перекручуются в узел smile.gif
Быстрый ответ:

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