Задать вопрос
StrangeAttractor
@StrangeAttractor

Существует ли упрощённый СУБД-независимый язык для описания структуры реляционной БД?

Иногда хочется быстро набросать структуру БД для простенького CRUD-приложения, но лень писать на SQL все эти CREATE TABLE и всё такое, которые, к тому же, будут годиться только для одной конкретной СУБД (диалекта SQL). Хочется чего-то простого и лаконичного и компилируемого в диалект любой СУБД, а может заодно и в заготовки кода модели для многих языков/ORM. Например вот такой вариант мне придумался на вскидку, опишем, для примера, базу взаимоотношений между людьми, смысл, думаю, интуитивно понятен:

people
    pk: id int
    c: name varchar (45)
    c: surname varchar (45)

relations
    pk: id int
    c: name varchar (45) ["firend", "spouse", "boss"] 

relationships
    fk: person1 ~ people -> id
    fk: person2 ~ people -> id
    fk: relation ~ relations -> id
    c: since dt


Сначала, как водится, пришла мысль написать парсер самому (вышеприведённый вариант синтаксиса, конечно, не финальный (да и пример высосанный из пальца), есть ещё много что продумать, а это так, первый набросок), а потом пришла светлая идея поинтересоваться нет ли уже чего-то подобного.

PS: Про code-first варианты, предоставляемые различными ORM я знаю, но хочется чего-то не привязанного к конкретной ORM и конкретному языку программирования.

UPDATE: Т.к. готового решения не нашлось, я таки написал такую штуку сам. Окультурю, выложу, оформлю как ответ. Кому надо - подписывайтесь.
  • Вопрос задан
  • 137 просмотров
Подписаться 1 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
yuml.me можно пробовать тамошним DSL-ем строить модель данных в UML.

Так же можете поискать какую-нибудь тулзу для организации миграций поддерживающих описание схемы в yaml.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы