|
|
|
| Здравствуйте, вот возник вопрос следующего плана.
Допустим пишем систему регистрации пользователей, используя в качестве БД файловую систему. Вот здесь то и встает проблема с совместным доступом на файл.
представим себе такую ситуацию: два человека в одно и то же время начали регистрацию(нажали кнопку РЕГИСТРАЦИЯ). Что произойдет?Как этого избежать? Можно применять функцию flock, но думаю что она целостно не решит проблему и как ее корректно использовать чтобы не потерялись данные ни первого ни второго пользователя.
Вот еще такой вопрос: я знаю что flock применяют при записи в файл, чтобы предотвратить ошибку совместного доступа. А применяется ли flock при такой ситуации: два человека в одно и то же время зашли на страничку, которая формируется используя какой нибудь файл являющийся базой. Первый допустим открыл файл...Значит второй пользователь при попытке получить данные из этого файла их не получит - возникнет ошибка? Тоже придется использовать flock???
Желательно привести примеры :) А то уже замучался даже простую систему регистрации делать с использованием mySQL. А в сети не очень то много бесплатных хостеров которые предоставляют БД MySQL | |
|
|
|
|
|
|
|
для: Alexneo
(25.09.2005 в 00:41)
| | Пока файл занят flock другой процесс использующий flock просто ждёт когда файл освободится (если процесс не использует flock - он ни кого не спрашивая пытается открыть файл и писать туда, поэтому flock имеет смысл использовать только если он используется везде).
Вы можете проще поступить - заводите под каждого пользователя отдельный файл - ведь файловая система действительно является простейшей базой данных - структурной единицей которой является файл, а не запись. Этим вы решите проблему совместного доступа - один файл - один пользователь - список пользователей - это список файлов в директории. Файлы имеют в атрибутах время создания, поэтому вы всегда будете знать время создания файла. | |
|
|
|
|
|
|
|
для: cheops
(25.09.2005 в 13:25)
| | Ну хорошо, допустим я буду использовать предложенную вами схему построения БД на ФС. А вот например возьмем к примеру чат на файловой БД... или систему новостей...... сортировку, удаление и другие операции неудобно ведь использовать при работе с файлами...и какие права доступа выставлять?
Вот знаю что делятся права доступа на 3 группы: Владелец, Группа, Другие. Так вот, при обращении к файлу test.php права из какой группы берутся, и из какой группы берутся права при подключении файла с помощью require или include.
В общем хотелось бы узнать какая группа и где имеет место....какие права и в каком случае используются
P.S. приведите пожалуйста пример использования flock | |
|
|
|
|