Я хочу поделиться БД информации (например, geonames.db.94y.info,
пользовательская версия geonames db) полезно, но безопасно. Есть ли
хороший способ сделать это ?:
Не следует заставлять людей скачивать БД для получения полезной информации.
Мое текущее решение - разрешить произвольные запросы SELECT с
максимальное время процессора 5 с.
Запросы SELECT позволяют получить НЕКОТОРОЙ полезную информацию, такую как
в мире 50 самых густонаселенных "городов", а общая численность населения во всех
городов мира:
http://7cdf2e8dd01ab370c96c4d3daf67c5fb.geonames.db.94y.info/
http://d6da02fc16ae6e5afbf2a4c60b1e4e5c.geonames.db.94y.info/
- Мы видим, что в самом густонаселенном городе (Сан-Паулу, 9839066) около
1,19% городского населения мира (829523357). Мы можем даже написать
(неэффективный) запрос для этого:
http://245bd4d07c2c5179dd37d8f7520ee7cf.geonames.db.94y.info/
Как насчет двух лучших городов вместе взятых? Какой процент
городское население мира они? Топ 3 вместе взятых? Топ н комбинированный?
Для этого и более сложных примеров нам нужен PL, или, возможно,
Нечто большее. Пока я в порядке, давая людям доступ только для чтения БД,
Я не уверен, что запуск произвольных команд PL будет безопасным.
Примечание. Я понимаю, что MySQL может выполнять «накопительные» запросы, как это, но:
Это не стандартный SQL
Я использую SQLite3
Требуется несколько запросов, но я разрешаю только один запрос за раз
Я уверен, что есть примеры, которые даже MySQL не мог обработать.
По сути, я хочу позволить людям получать любую информацию, которую они хотят, из
БД без загрузки, если они не меняют
данные или съесть слишком много процессорного времени.
Есть ли здесь известное решение? Я знаю о Drupal и других CMS,
но я не думаю, что они могут делать такие вещи?
[Примечание: я использую geonames.db в качестве примера, но он в тестировании
не полагайтесь на данные / результаты]