2010-02-25 4 views
0

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

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

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

Этот список отсутствует означает исчерпывающий)

TIA

ответ

1

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

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

Для получения дополнительной информации, вы можете взглянуть на запись в Википедии Database abstraction layer.


Не знаю, какой язык вы используете, но, например, в РНР ORM Framework Doctrine предоставляет такую ​​Abstraction Layer.

+0

Спасибо. Это касается некоторых проблем. Однако он не затрагивает такие проблемы, как хранимые процедуры и т. Д. Мы используем ORM - не полностью. – shikarishambu

+0

Добро пожаловать ;; о хранимой процедуре, вы пишете написание какого-либо кода SQL там, то есть полностью не используете ORM ... –

Смежные вопросы