powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Насколько безопасно использование такого универсального движка?
12 сообщений из 12, страница 1 из 1
Насколько безопасно использование такого универсального движка?
    #33134179
Ихтиандр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!

Необходимо написать универсальный обработчик для формирования SQL-запросов к БД для различных модулей. У каждого модуля предполагается одна таблица.

Таким образом, надо принимать входящие переменные из форм, обрабатывать их (парсить на соответствие типу, регулярному выражению, длине [если это строка], допустимому значению [если это число] и т.д.).

Далее сформировать SQL-запрос (select, insert, update, delete) к БД (в зависимости от обработки).

Вопрос в том, насколько выгоден такой подход для программирования и насколько возможно последующее обновление/сопровождение системы в будующем, если например, потребуется что-то добавить новое?

Подделитесь пожалуйста опытом, кто сталкивался с подобными разработками.

Заранее благодарю.
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33134218
.-.-.-.-.-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я что-то похожее делал, но только INSERT/UPDATE/DELETE запросов.
Был базовый класс DBObject - он формировал эти запросы.
И для каждой таблицы писался дочерний класс. В нем только перечислялся список полей таблицы которые (с некоторыми ограничениями, например Логин нельзя UPDATE-тить), писался код проверки входящих данных, код модификации данных (например пароль перед записью надо хешировать)

Вобщем-то подход стандартный. Но у каждого свои пути реализации.

От генерирования SELECT-запросов я отказался (точнее генерил только простые запросы)
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33134225
.-.-.-.-.-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А проблемы начинаются когда есть несколько взаимосвязанных объектов.
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33134565
Ихтиандр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.-.-.-.-.-А проблемы начинаются когда есть несколько взаимосвязанных объектов.
Например, когда несколько таблиц? Я правильно вас понял?

Добавлю, что интересует сам подход к такому проектированию, а в последующем кодингу. Стоит ли двигаться в этом направлении или это будет пустая трата времени, т.к. потом может оказаться, что система очень сложна в сопровождении и каких-либо аптейдах?

Или же было бы оптимальным выбором писать все-таки для каждого модуля (для каждой таблицы) свои обработчики?
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33134681
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И для каждой таблицы писался дочерний класс. В нем только перечислялся список полей таблицы которые (с некоторыми ограничениями, например Логин нельзя UPDATE-тить), писался код проверки входящих данных, код модификации данных (например пароль перед записью надо хешировать)
несколько странный подход ИМХО

1) список полей для большинства БД можно получить как метаданные по имени таблицы
2) проверять данные можно в одном месте ну или написать (если вам угодно) класс (хотя можно отлично и без него ИМХО) и там писать методы проверки на нужные таблицы (а можно максимольно предусмотреть все в базе и может методов не понадобится)
3) md5 чаще всего можно и в базе делать или например ввести условие что все поля содержащие в названии _pswd автоматически хэшировать кстати так можно устроить и проверку других полей (например загрузка файлов _img_upload - картинки, _zip_upload - архивы и неважно в какой таблице вы заведете такую калонку система должна на это реагировать адекватно)

формочки тоже былобы хорошо рисавать автоматически по методанным, но увы это не всегда позволяет задача (тогда пытаться заюзать шаблоны готовые беее или свои :-))) уххх)

ну это мысли навеянные разработкой таких вот самых штук.

админ для сайта однозначно писать так, если это некий итерфейс какого нибудь менеджера по продажам с куччей всевозможных формочек галочек и кнопочек тогда шаблоны и на каждую форму свой обработчик события (при большом количестве формочек > 40 затютюхаешся подкручивать этот супер универсальный аппарат который ты так хорошо спроектировал да чтото не предусмотрел ;-) )
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33134896
JackS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже думал когда то такое чудо писать и даже почти дописал пока не дошло что это глупая затея и куда целесообразнее и пожалуй быстрее написать класс для работы с БД а потом просто вставлять одну строчку mysql запроса дляселектов апдейтов и прочего + это куда нагляднее... вот такая вот имхА :)
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33135634
Ихтиандр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
 ^
| 
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33135885
.-.-.-.-.-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vfabr
1) список полей для большинства БД можно получить как метаданные по имени таблицы
2) проверять данные можно в одном месте ну или написать (если вам угодно) класс (хотя можно отлично и без него ИМХО) и там писать методы проверки на нужные таблицы (а можно максимольно предусмотреть все в базе и может методов не понадобится)
3) md5 чаще всего можно и в базе делать или например ввести условие что все поля содержащие в названии _pswd автоматически хэшировать кстати так можно устроить и проверку других полей (например загрузка файлов _img_upload - картинки, _zip_upload - архивы и неважно в какой таблице вы заведете такую калонку система должна на это реагировать адекватно)

1. у меня с полями хранится еще и некоторые их свойства.
2. мне так проще
3. Делать запросы типа INSERT INTO (...) VALUES(..., MD5('$passwd')); я не хочу - считаю их менее безопасными

Подробнее свой старый подход я описал
http://forums.webscript.ru/showthread.php?s=&postid=116983#post116983

Сейчас у меня изменилось представление об ORM но некоторые вещи из старого подхода я оставил
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33136021
Ихтиандр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.-.-.-.-.-1. у меня с полями хранится еще и некоторые их свойства.
2. мне так проще
3. Делать запросы типа INSERT INTO (...) VALUES(..., MD5('$passwd')); я не хочу - считаю их менее безопасными

Подробнее свой старый подход я описал
http://forums.webscript.ru/showthread.php?s=&postid=116983#post116983

Сейчас у меня изменилось представление об ORM но некоторые вещи из старого подхода я оставил

Прочитал я Ваш тред на webscript.ru и понял, что изобретаю велосипед. Правда до конца подход так и остался не ясен. Где можно поподробнее почитать про ORM (Object Role Modeling)?
Вообще идея очень интересная и пока я только на пути к этому :).

И еще вопрос: какие бы вы могли дать советы по написанию обработки данных для различных структур таблиц, представленных в виде иерархических структур, "один-ко-многим", "многие-ко-многим"? Чувствую, что придется придумывать оригинальное решение, но не уверен возможно ли вообще такое.
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33136087
.-.-.-.-.-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть книга
http://www.books.ru/shop/books/156126 (на английском можно скачать в сети)

Есть слайды из доклада fisher-а : http://fisher.phpclub.net/ORM-slides/index.html

http://www.lenvendo.ru/ru/info/links/ - просто ссылки по теме.

ORM - Object Relation Mapping


PS
Мое мнение - многие из этих источников абсолютно не учитывают специфику web
Наверное один из лучших примеров как надо писать ORM - Active Record (http://ar.rubyonrails.com/)
ИМХО
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33136103
.-.-.-.-.-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИхТиандр
И еще вопрос: какие бы вы могли дать советы по написанию обработки данных для различных структур таблиц, представленных в виде иерархических структур, "один-ко-многим", "многие-ко-многим"? Чувствую, что придется придумывать оригинальное решение, но не уверен возможно ли вообще такое.
Отвечу только про иерархические данные - здесь я поклонник алгоритма Nested sets.
В остальном у меня пока нет четкого подхода (и я пока, временно, не занимаюсь ORM-ами)
...
Рейтинг: 0 / 0
Насколько безопасно использование такого универсального движка?
    #33148737
Ихтиандр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.-.-.-.-.-А проблемы начинаются когда есть несколько взаимосвязанных объектов.ВЫ оказались очень правы! :))

Похоже щас именно на таком этапе разработки, что возникли реальные трудности со связанными объектами. Чорт..... :)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Насколько безопасно использование такого универсального движка?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]