- PVSM.RU - https://www.pvsm.ru -
Ни для кого не секрет, что проектирование структуры БД является одной из основных и порой очень трудозатратных задач при разработке любого ПО, работающего с данными. Все мы так или иначе проектируем БД, пытаясь представить себе схему взаимосвязей таблиц, а зачастую рисуем, визуализируем структуру БД, прежде чем перенести ее в СУБД. Для моделирования баз данных MySQL есть MySQL Workbench, поставляемый разработчиком, для MS SQL есть Database Diagrams; я до недавнего времени пользовался Dia, а кто-то, может быть, использует для этих целей MS Visio. Но для PostgreSQL я не встречал ни одного адекватного решения, которое позволяло бы максимально просто и точно перенести наброски структуры БД в код ее создания в самой СУБД.
Не знаю, как могло так случиться, но нет ни одной хабрастатьи о том продукте, о котором я хочу вам рассказать.
Итак… (текст, много картинок)
Хочу представить вам opensource продукт, распространяемый по лицензии GNU General Public License 3 [1], под названием pgModeler [2].
Автор официально заявляет, что его продукт (приближенный перевод):
Вы все (кроме самых любопытных, которые уже сходили по ссылке на официальную страницу), наверное, спросите, чем же уникален этот продукт?
Давайте посмотрим (картинки кликабельны).
Что ж, на вид все очень даже вкусно, но так ли это на самом деле? Предлагаю создать тестовую базу.
Для начала необходимо зарегистрировать новое подключение к СУБД в настройках (Меню->Edit->Configurations->Connections):
Добавим новую роль для нашей тестовой БД. Для этого в древовидном представлении справа необходимо вызвать контекстное меню от самой БД:
Базу автоматически создавать не будем:
да, ID для роли придется добавить вручную.
Далее добавляем новую схему:
Давайте обусловимся, что в БД у нас будут храниться информация о товарах на складах. Без движений, без остатков, просто реализуем принадлежность товара к определенному складу.
Создаем новую таблицу. Это можно сделать, например, из контекстного меню, вызванного от рабочей области (клетчатое поле):
В конструкторе создания таблицы можно сразу указать все необходимые колонки, ограничения, триггеры, правила и индексы:
После принятия всех параметров таблицы она отобразится в рабочей области:
Создаем таблицу товаров:
Не стоит создавать колонку для связи двух таблиц. Конструктор это сделает за нас.
Для связи двух таблиц предусмотрено несколько типов отношений:
Создаем отношение 1-ко-Многим:
На схеме оно будет выглядеть вот так:
Теперь мы можем выгрузить нашу схему в файл-скрипт создания, в файл-картинку или напрямую в СУБД:
а также посмотреть (без возможности изменить) скрипт создания БД для любой из поддерживаемых версий СУБД в нативном формате и в формате XML (в контекстном меню от базы данных в древовидной структуре справа):
Честно говоря, исходный код можно увидеть для каждой сущности базы данных, будь то роль, схема, база данных или просто таблица.
Что ж, заявленные автором возможности данного ПО вполне себя оправдывают. Все очень интуитивно и просто.
Данный проект сейчас находится в версии v0.4.0-rc1 и активно развивается. Функционал достаточно богат, но возможны некоторые баги и недоработки, кои, впрочем, я пока не встретил.
Думаю, pgModeler [2] придется по вкусу всем тем, кто выбирает для своих проектов PostgreSQL в качестве основной СУБД, и он поможет вам в моделировании и визуализации ваших баз данных.
Автор: bvn13
Источник [12]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/postgresql/27561
Ссылки в тексте:
[1] GNU General Public License 3: https://github.com/pgmodeler/pgmodeler/blob/master/LICENSE
[2] pgModeler: http://www.pgmodeler.com.br/
[3] Qt: http://doc.qt.digia.com
[4] Image: http://www.pgmodeler.com.br/assets/img/ss/screen6.png
[5] Ссылка на исходный код: http://github.com/pgmodeler/pgmodeler
[6] Image: http://www.pgmodeler.com.br/assets/img/ss/screen1.png
[7] Image: http://www.pgmodeler.com.br/assets/img/ss/screen2.png
[8] Image: http://www.pgmodeler.com.br/assets/img/ss/screen3.png
[9] Image: http://www.pgmodeler.com.br/assets/img/ss/screen4.png
[10] Image: http://www.pgmodeler.com.br/assets/img/ss/screen5.png
[11] автором: https://github.com/rkhaotix
[12] Источник: http://habrahabr.ru/post/170045/
Нажмите здесь для печати.