Создание MySQL и SQLServer совместимых объектов - PullRequest
0 голосов
/ 25 февраля 2010

У меня есть необходимость поддерживать два отдельных движка базы данных - MySQL и SQL Server. Я не хочу поддерживать два разных набора сценариев для создания объектов базы данных (таблиц, представлений, хранимых процедур и т. Д.), Если это возможно.

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

Некоторые из проблем, с которыми я столкнулся, 1. MySQl имеет неявные значения по умолчанию для столбцов, а SQL Server - нет. 2. Столбец отметки времени MySQL отличается от столбца отметки времени SQL Server 3. То, как MySQL ссылается на объекты в другой базе данных, отличается от того, как это делает SQL Server - differentdb.table (mysql) и differentdb.dbo.table (sql server) 4. Синтаксис создания временной таблицы различен в двух движках базы данных

Этот список ни в коем случае не является исчерпывающим:)

ТИА

1 Ответ

1 голос
/ 25 февраля 2010

Решением было бы не использовать какой-либо сценарий SQL для создания объектов базы данных, а использовать некоторый уровень абстракции между вашим приложением и базой данных:

  • Он должен принимать в качестве входных данных некоторую "нормализованную" схему - например, описание XML вашей структуры базы данных
  • И либо выводить сценарии SQL (различаются для каждого типа базы данных) , либо напрямую воздействовать на базу данных.

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


Не уверен, какой язык вы используете, но, например, в PHP, ORM Framework Doctrine предоставляет такой уровень абстракции .

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