Самый простой способ разработать приложение, которое может использовать несколько типов баз данных? - PullRequest
0 голосов
/ 23 февраля 2011

У меня есть проект для класса, который требует, чтобы, если база данных использовалась, у пользователя были варианты выбора базы данных, которая могла бы быть другого типа. Так что пока я могу использовать, например, MySQL для разработки. В окончательной версии проекта пользователь должен иметь возможность выбирать базу данных (Oracle, MySQL, SQLite и т. Д.) После установки. Какой самый простой способ сделать это, если есть простой способ?

Используемый язык зависит от меня, если он поддерживается машинами Linux департамента, поэтому это могут быть Java, PHP, Perl и т. Д. Я исследовал и нашел информацию по ODBC, JDBC и SQLJ (например, как это ), но я довольно плохо знаком с базами данных, поэтому мне трудно понять, что будет лучше для моих нужд. Также возможно, что не может быть достаточно простого способа сделать это; профессор признал, что он тоже не специалист по базам данных, и он, казалось, думал, что это будет легко, не имея четкого представления о том, что для этого потребуется.

Это для веб-приложения, но оно должно быть достаточно простым, например, с использованием HTML и Javascript на стороне клиента и Java с базой данных MySQL на стороне сервера. Никаких упоминаний о фреймворках не было сделано, поэтому я думаю, что они слишком много. У меня есть возможность использовать Tomcat или Apache, если это необходимо, но общая идея состоит в том, чтобы все было просто, и все использованное должно быть в состоянии быть установлено / изменено / сконфигурировано только с правами доступа пользователя. Я думаю, что что-то вроде перекомпиляции PHP для использования ODBC будет отсутствовать.

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

Ответы [ 6 ]

1 голос
/ 24 февраля 2011

Может использоваться объектно-реляционный картограф (ORM) или уровень абстракции базы данных (DAL). Они предназначены для обеспечения стандартного API для нескольких бэкэндов базы данных, что позволяет переключаться между различными бэкэндами с минимальными изменениями в коде или без таковых. Например, в Python популярным ORM является SQLAlchemy , а отличным DAL является web2py DAL (он является частью web2py framework , но может использоваться как автономный DAL вне рамок). Также есть много других опций на других языках.

1 голос
/ 23 февраля 2011

Если вы хотите вставить туда Java, Hibernate (который не требует фреймворка).Hibernate довольно прост в использовании.Вы пишете HQL, который переводится в SQL, необходимый для базы данных, которую вы используете.

1 голос
/ 23 февраля 2011

Думаю, у вас возникнет проблема в том, что SQL не является действительно стандартным. Я имею в виду, что поставщики (Oracle, MySQL и т. Д.) Включили типы и функции, которые не являются стандартом SQL, чтобы «привязать вас» к своей БД, например, Oracle VARCHAR2 и т. Д.

Когда я учился в университете, мой последний годовой проект заключался в создании приложения, которое позволяло пользователям создавать реляционные базы данных с использованием JDBC с интерфейсом Java.

Использование JDBC было очень простым, но проблема заключалась в том, чтобы найти достаточно функций / типов SQL, которые были бы общими для всех поставщиков. Таким образом, они могли переключаться между ними без каких-либо проблем. Обходной путь - это внедрить модули для решения специфических проблем вендора и написать способы перевода между ними. Так, например, вы можете разработать базу данных для MySQL с большим количеством специфичного для MySQL кода, но затем вы можете захотеть использовать Oracle, и тогда возникнут проблемы, которые вам нужно будет решить.

Я бы потратил некоторое время на изучение того, какой основной стандарт SQL внедряют все поставщики, а затем на код для этих функций. Но я думаю, что используемая вами технология - это не проблема, а созданный вами SQL.

Надеюсь, это поможет, извините, если это не поможет!

1 голос
/ 23 февраля 2011

Ну, вы можете пойти двумя путями (на Java):

  1. Вы можете разрабатывать свои собственные классы для работы с различными базами данных и загружать их драйверы в JDBC. Таким образом, вы создадите слой доступа к данным для себя, что займет некоторое время.

  2. Вы можете использовать Hibernate (или другие ORM). Таким образом, Hibernate позаботится о вас, а вам нужно только знать, как использовать Hibernate. Изучение Hibernate может занять некоторое время, но когда вы к нему привыкнете, это может быть очень полезно для ваших будущих проектов.

0 голосов
/ 23 февраля 2011

Существует множество инфраструктур реляционных баз данных Object, если вы не предпочитаете jdbc.Для простых / небольших приложений это должно работать нормально.

0 голосов
/ 23 февраля 2011

использовать каркас с уровнем абстракции базы данных и orm.попробуйте symfony или rails

...