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

Форум PHP

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

 

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

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

тема: Вопрос по архитектуре приложения: что хранить в базе данных, а что нет?
 
 автор: jonik   (22.11.2011 в 15:09)   письмо автору
 
 

Доброго времени суток! Я относительно начинающий программист и, прочитав одну из ваших книг, я для себя открыл, что вполне можно выходить за рамки одного проекта, а именно, писать классы, которые можно использовать для большого количества проектов. Т.е. повторное использование кода происходит не только внутри одного проекта, но и в другие проекты используют этот же код.... Таким образом я написал класс, который у меня работает с базой данных и ему только скармливается запрос и конфигурационные данные. Очень удобно.......

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

Общая схема его работы такова: Есть набор данных, которые должны прийти, их тип, значения по умолчанию (на случай, если этот параметр не придет), диапазон их возможных значений. Эти исходные данные можно хранить

1. В конфигурационном файле в виде, скажем, таблицы, разделенной сепаратором.... (или возможно даже в XML).
2. В конфигурационном файле в виде массива, где ключами будут тип данных и т.п.
3. В Базе данных....


Далее происходит сравнение того, что пришло, с тем, что должно быть и, происходит обработка или принимаются соответствующие меры, если пришедшие данные некорректны..... Если все ок, то на выходе имеем уже очищенные и корректные данные, которые потом передаются контроллеру.

Отсюда 2 вопроса.....
1. Принято ли в приличном обществе хранить служебные данные приложения в БАЗЕ ДАННЫХ? ... т.е не только товары, пользователей и т.п., но и тип входных параметров, какие-то значения по умолчанию.

2. При малом количестве входных данных (явно не более 20) где все-таки лучше их хранить с точки зрения безопасности (конечно же доступ из вне к этим файлам будет закрыт) и производительности?

1 - файл CSV или XML (короче там, где придется парсить)
2. В простом PHP-файле в виде массива
3 В базе данных.

  Ответить  
 
 автор: cheops   (22.11.2011 в 15:28)   письмо автору
 
   для: jonik   (22.11.2011 в 15:09)
 

>1. Принято ли в приличном обществе хранить служебные данные приложения в БАЗЕ
>ДАННЫХ? ... т.е не только товары, пользователей и т.п., но и тип входных параметров, какие-то
>значения по умолчанию.
Вполне. Не только мета-данные, но и кэши и чего только не хранят... вообще на приличия сильно внимания не обращайте, 50-лет назад писать операционные системы на чем-то отличном от ассемблера тоже было неприлично... а 15 лет назад было неприлично пользоваться интерпретаторами вроде PHP. Все течет и изменяется, то что однажды было неприличным в один прекрасный день становится наиболее эффективным.

>2. При малом количестве входных данных (явно не более 20) где все-таки лучше их хранить с
>точки зрения безопасности (конечно же доступ из вне к этим файлам будет закрыт) и
>производительности?
С точки зрения безопасности лучше в базе данных или в PHP-файле (всегда есть угроза, что забудете защитить папку или сделаете это неправильно, или за вас это сделает кто-то другой - лучше вообще исключить вероятность этого типа ошибок).
С точки зрения производительности второй случай (массив в PHP-файле) более предпочтителен. Обычно, если производительность сильно беспокоит, но хочется предоставить адекватный механизм для редактирования этого файла (а для этого база данных больше подходит), то хранят в базе данных и эту информацию используют для работы в системе администрирования. В момент внесения изменений (добавление, редактирования, удаления) формируют/перезаписывают файл с массивом, который в остальной код подключается при помощи конструкций include_once() или require_once(). Т.е. PHP-файл - это копия информации из базы данных (вообще любое ускорение существующей системы на 80% обеспечивается таким дублированием информации из источника).

  Ответить  
 
 автор: jonik   (22.11.2011 в 15:48)   письмо автору
 
   для: cheops   (22.11.2011 в 15:28)
 

Спасибо большое за ответ! Все правильно, так и сделаю! Почему-то не подумал о таком варианте)))

  Ответить  
Rambler's Top100
вверх

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