Существует ли существующее программное обеспечение, которое позволяет (легко) создавать запросы через веб-страницу? - PullRequest
2 голосов
/ 19 июля 2011

Я хотел бы создавать произвольные запросы к базе данных, позволяя пользователю создавать запросы «на лету». Для каждого объекта / таблицы - возможность выбрать его атрибуты, а затем «построить» запрос (который будет преобразован в оператор SQL) и, наконец, запустить его через веб-интерфейс. Например, система продажи билетов "rt" делает это, и другим примером будет веб-страница http://gatherer.wizards.com/Pages/Advanced.aspx.

Я сейчас программирую на рельсах, но любое существующее решение, которое реализует это (или что-то подобное), будет приветствоваться.

Ответы [ 3 ]

1 голос
/ 19 июля 2011

Просто будьте осторожны при создании динамически сгенерированных запросов, подобных этому, которые нужно будет выполнить через sp_executesql (пример: ms sql server) и т. Д. ..... убедитесь, что вы охватили все свои базы, чтобы гарантировать, что ваше приложение не уязвимо к атакам с использованием SQL-инъекций, так как этот тип разработки, по сути, принесет много неприятностей, если он будет выполнен неправильно. Я бы рекомендовал хранить все запросы в таблице и только читать запросы из этой таблицы, чтобы помочь изолировать запросы, которые выполняются в ваше приложение. Просто идентифицируйте их с меткой и позвольте ЕС выбрать метку из элемента управления выпадающего списка на веб-интерфейсе.

Удачи, и я не уверен ни в каком программном обеспечении, которое поможет

0 голосов
/ 19 июля 2011

Обратите внимание, что запросы, на которые вы ссылаетесь, не являются произвольными: они находятся в очень специфической проблемной области, в определенном наборе таблиц sql.

Тем не менее, на вашем месте я бы посмотрел, как люди создают SQL-запросы с помощью JavaScript. Примерно так:

http://code.google.com/p/django-querybuilder/

http://css.dzone.com/articles/sqlike-sql-querying-engine?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+zones%2Fria+(RIA+Zone)

http://thechangelog.com/post/4914956307/rel-arel-ported-to-node-js-with-some-changes

Это, по крайней мере, даст вам хорошее представление о базовых структурах данных.

0 голосов
/ 19 июля 2011

Не совсем уверен, что ваш вариант использования здесь, но я бы сказал, посмотрите

Doctrine ORM (Object Relational Mapper)

** Редактировать После прочтенияи глядя на пример.Я бы предложил только Doctrine для большого веб-сайта.

Затем используйте DQL-синтаксис Doctrines с некоторой магией javascript / jquery для форм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...