Сейчас я работаю над разработкой нового проекта и в нём я решил использовать много новшеств, которые уже давно заприметил, но в силу того что до этого проекты были типичными использовать их не было необходимости.
В качестве одного из новшеств я решил не создавать Базу Данных вручную, как это было раньше, а сделать её используя какое-нибудь средство для визуального проектирования БД. Но задача оказа лась сложнее, нежели я думал.
Для начала нужно было найти программу, которая отвечает следующим требованиям:
- Работает в Ubuntu Linux без использования Wine и других эмуляторов Windows. Марк Шаттлворт сказал, что использование Wine неправильный путь, и я с ним согласен;
- Не должна связываться с БД, так как это не к чему, да и хостеры зачастую не дают доступа к MySQL извне.
- Умеет создавать ER-модель БД;
- Умеет создавать из модели SQL-код, пригодный для использования в MySQL.
Первое на что я обратил внимание, естественно, была программа MySQL Workbench (скачать MySQL Workbench). После установки версии 5.1.5aplha и не долгих тестов я был очень рад, так как понял что это именно то, что я хотел. Но моя радость была не долгой. После того как я приступил к созданию модели нужной мне БД програма начала вести себя неадекватно и вылетала при каждом удобном случае. После долгих попыток «договориться» с программой не приведших вообще ни к какому результату, был продолжен поиск аналогичных программ.
Была найдена статья «Обзор средств визуального проектирования БД в Linux». И начался перебор программ.
Было опробовано дополнение к IDE Eclipse — AmaterasERD. Плагин хорош только для быстрого набрасывания модели БД. Поддерживает построение отношений таблиц, но при этом нельзя указать какое действие должно производиться с зависимой таблицей (RESTRICT, CASCADE и т.д.). Да и превращение модели в SQL-код я не нашёл.
Был опробован GNU Ferret. Это что-то совсем аскетичное и на уровне начала 90-х.
OpenOffice.org: Базы данных — это сродни Microsoft Access и для данной задачи оказался бесполезен.
Execute Query — мощная среда, но в следствии того что я не могу подключиться к БД хостера мне не помогла. Также не имеет типов данных TEXT, BLOB и иже с ними.
Power*Architect Data Modeling Tool — удобное средство, но так же как и Execute Query имеет не все типы данных. Слегка аскетичное.
dbWrench — умеет делать всё что мне нужно, имеет приятный интуитивнопонятный интерфейс, работает быстро. Отличная альтернатива ещё очень сырому MySQL Workbench, НО она платная! 149 USD! Есть триал версия, которая работает 30 дней.
Есть ещё один интересный плагин для Eclipse от компании Soyatec, но я его ещё неиспытывал.
Выводы
В мире Linux есть много инструментов, которые могут выполнить поставленные мною задачи. Какие-то хуже, какие-то лучше, но идеального я так и не нашёл. Завтра испытаю плагин для Eclipse от Soyatec. Если он окажется лучше dbWrench, то буду проектировать БД в нём, а пока победитель моего обзора однозначно dbWrench, хоть он и платный!
Добавлено 28 января 2009 в 11:00
Плагин для Eclipse от компании Soyatec установить не удалось в силу моего низкого уровня знаний зависимостей плагинов среды Eclipse. Требуется плагин org.eclipse.pde, а я его найти и установить не смог.