Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Использование файловой системы в виде базы данных
 
 автор: Alexneo   (25.09.2005 в 00:41)   письмо автору
 
 

Здравствуйте, вот возник вопрос следующего плана.
Допустим пишем систему регистрации пользователей, используя в качестве БД файловую систему. Вот здесь то и встает проблема с совместным доступом на файл.
представим себе такую ситуацию: два человека в одно и то же время начали регистрацию(нажали кнопку РЕГИСТРАЦИЯ). Что произойдет?Как этого избежать? Можно применять функцию flock, но думаю что она целостно не решит проблему и как ее корректно использовать чтобы не потерялись данные ни первого ни второго пользователя.

Вот еще такой вопрос: я знаю что flock применяют при записи в файл, чтобы предотвратить ошибку совместного доступа. А применяется ли flock при такой ситуации: два человека в одно и то же время зашли на страничку, которая формируется используя какой нибудь файл являющийся базой. Первый допустим открыл файл...Значит второй пользователь при попытке получить данные из этого файла их не получит - возникнет ошибка? Тоже придется использовать flock???

Желательно привести примеры :) А то уже замучался даже простую систему регистрации делать с использованием mySQL. А в сети не очень то много бесплатных хостеров которые предоставляют БД MySQL

   
 
 автор: cheops   (25.09.2005 в 13:25)   письмо автору
 
   для: Alexneo   (25.09.2005 в 00:41)
 

Пока файл занят flock другой процесс использующий flock просто ждёт когда файл освободится (если процесс не использует flock - он ни кого не спрашивая пытается открыть файл и писать туда, поэтому flock имеет смысл использовать только если он используется везде).
Вы можете проще поступить - заводите под каждого пользователя отдельный файл - ведь файловая система действительно является простейшей базой данных - структурной единицей которой является файл, а не запись. Этим вы решите проблему совместного доступа - один файл - один пользователь - список пользователей - это список файлов в директории. Файлы имеют в атрибутах время создания, поэтому вы всегда будете знать время создания файла.

   
 
 автор: Alexneo   (25.09.2005 в 15:37)   письмо автору
 
   для: cheops   (25.09.2005 в 13:25)
 

Ну хорошо, допустим я буду использовать предложенную вами схему построения БД на ФС. А вот например возьмем к примеру чат на файловой БД... или систему новостей...... сортировку, удаление и другие операции неудобно ведь использовать при работе с файлами...и какие права доступа выставлять?
Вот знаю что делятся права доступа на 3 группы: Владелец, Группа, Другие. Так вот, при обращении к файлу test.php права из какой группы берутся, и из какой группы берутся права при подключении файла с помощью require или include.
В общем хотелось бы узнать какая группа и где имеет место....какие права и в каком случае используются

P.S. приведите пожалуйста пример использования flock

   
 
 автор: cheops   (25.09.2005 в 21:33)   письмо автору
 
   для: Alexneo   (25.09.2005 в 15:37)
 

Подробнее о правах доступа можно почитать в темах по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=158
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1553
Пример использования функции flock() можно найти в темах по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=63
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=572
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=791

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования