Существует ли язык XML для определения / создания схем базы данных SQL? - PullRequest
0 голосов
/ 23 октября 2008

Существует ли диалект XML для определения таблиц, индексов и отношений реляционной базы данных, а также "компилятор" или таблица стилей для преобразования этого определения в операторы SQL CREATE (DDL)?

EG, что-то похожее на:

<Table Name="orders">
    <Column Name="order_id" Type="varchar" Size="20"/>
    ... etc ...
</Table>

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

Редактировать: Это не имеет ничего общего с ORM.

Ответы [ 3 ]

2 голосов
/ 23 октября 2008

Что-то вроде xml2ddl ?

0 голосов
/ 24 октября 2008

Я пару раз писал свои собственные для разных проектов. Если вы хорошо разбираетесь в XSLT, хорошо разбираетесь в DDL и обладаете хорошей средой разработки, то на удивление легко (например, 2 или 3 часа работы) собрать вместе схему представления метаданных и преобразование, создающее сценарий создания базы данных.

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

0 голосов
/ 23 октября 2008

Похоже на миграцию на основе XML, хотя никогда не видел ни одного.

Если вы в OR / M, вы можете взглянуть на (N) инструмент Hibernate hbm2ddl . Он генерирует соответствующие команды создания для схемы на различных диалектах базы данных из определения XML.

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