Существует ли какая-либо инфраструктура веб-приложений python, обеспечивающая уровень абстракции базы данных для SQL и NoSQL? - PullRequest
2 голосов
/ 31 августа 2010

Можно ли даже создать уровень абстракции, который может вместить реляционные и нереляционные базы данных? Цель этого уровня - минимизировать повторения и позволяет веб-приложению использовать любую базу данных, просто изменяя / модифицируя код в одном месте (т. Е. Уровень абстракции). Часть, которая находится поверх уровня абстракции, не должна беспокоиться о том, является ли базовая база данных реляционной (SQL) или нереляционной (NoSQL) или какой-либо новый тип базы данных, которая может появиться позже в будущем.

Ответы [ 5 ]

2 голосов
/ 31 августа 2010

Вы могли бы использовать акции Django и Django-nonrel (http://www.allbuttonspressed.com/projects/django-nonrel) вместе, чтобы получить довольно объединенный опыт.Существуют некоторые ограничения, хотя внимательно читайте документы, помня "Спектски" Все абстракции негерметичны ".

2 голосов
/ 31 августа 2010

Сейчас проект Summer of Code продолжается, чтобы добавить нереляционную поддержку в ORM Джанго.Кажется, все идет хорошо, и есть большая вероятность, что он будет вовремя объединен с ядром для Django 1.3.

1 голос
/ 31 августа 2010

Что касается App Engine, все существующие попытки каким-то образом ограничивают вас (например, web2py не поддерживает транзакции или пространства имен и, возможно, многие другие вещи).Если вы планируете работать с GAE, используйте то, что предоставляет GAE, и забудьте о поиске святого Грааля SQL-NoSQL.Существующие решения неизбежно ограничены и негативно влияют на производительность.

1 голос
/ 31 августа 2010

Yo может также проверить web2py, они поддерживают реляционные базы данных и GAE в ядре.

0 голосов
/ 06 сентября 2010

Спасибо за все ответы.Подводя итоги ответов, в настоящее время только web2py и Django поддерживают этот вид абстракции.

Речь идет не о святом Граале SQL-NoSQL, использование абстракции может сделать приложения более гибкими.Предположим, что вы запустили проект с использованием NoSQL, а затем вам нужно переключиться на SQL.Желательно, чтобы вы вносили изменения в коды только в нескольких местах, а не повсюду.В некоторых случаях не имеет значения, храните ли вы данные в реляционной или нереляционной базе данных.Например, хранение пользовательских профилей, текстового контента для динамической страницы или записей блога.Я знаю, что использование абстракции должно быть компромиссным, но мой вопрос больше связан с существующим решением или техническим пониманием, а не с последствиями.

...