Структура базы данных

Дополнительные плагины к программе
User avatar
ilychuk
Star
Posts: 371
Joined: Mon Oct 22, 2012 1:58 pm
Location: Minsk, Belarus
Contact:

Структура базы данных

Post by ilychuk » Wed Sep 16, 2015 10:14 am

Нужна помощь в создании схемы базы данных. Для этого важно узнать в какой среде будем рисовать схему данных.

TerribleFloater
Superstar
Posts: 1868
Joined: Thu Feb 28, 2008 4:20 pm

Re: Структура базы данных

Post by TerribleFloater » Wed Sep 16, 2015 3:08 pm

ilychuk wrote:Нужна помощь в создании схемы базы данных. Для этого важно узнать в какой среде будем рисовать схему данных.
Интересный вопрос.
Что значит:
1. Схема данных;
2. Помощь в создании схемы данных;
3. Среда для рисования схемы данных.
А то вот сегодня как раз среда. Можно сегодня рисовать, можно через неделю.
Хочу: чёрные списки, пол людей, пользовательские поля изданий.
Кинопоиск: Image ПлюсКинопоиск: Image

User avatar
ilychuk
Star
Posts: 371
Joined: Mon Oct 22, 2012 1:58 pm
Location: Minsk, Belarus
Contact:

Re: Структура базы данных

Post by ilychuk » Wed Sep 16, 2015 5:05 pm

TerribleFloater wrote:
ilychuk wrote:Нужна помощь в создании схемы базы данных. Для этого важно узнать в какой среде будем рисовать схему данных.
Интересный вопрос.
Что значит:
1. Схема данных;
2. Помощь в создании схемы данных;
3. Среда для рисования схемы данных.
А то вот сегодня как раз среда. Можно сегодня рисовать, можно через неделю.
Не спорю, что постороение фраз наверняка неверно. Но те, кто так или иначе связан с базами данных - поняли о чем речь. А остальным данный топик не интересен. Ну а если ответить на ваши вопросы, то получим:
1. графическое представление структуры базы данных: таблиц и их связей.
2. Сложно самому каждый раз перепроверять структуры таблиц и находить изменения.
3. Я не знаю ПО которое позволяет брать данные из самой базы, как, например WorkBench для MySQL

TerribleFloater
Superstar
Posts: 1868
Joined: Thu Feb 28, 2008 4:20 pm

Re: Структура базы данных

Post by TerribleFloater » Wed Sep 16, 2015 8:28 pm

ilychuk wrote:1. графическое представление структуры базы данных: таблиц и их связей.
2. Сложно самому каждый раз перепроверять структуры таблиц и находить изменения.
3. Я не знаю ПО которое позволяет брать данные из самой базы, как, например WorkBench для MySQL
1. Их же нет. Связей, я имею в виду. Всё в голове у программиста (или на бумажке в сейфе, или в каком-то внешнем файле, не суть). Только он знает, что числовое поле code в таблице movies соответствует числовому полю movie в таблице data. Мы можем об этом лишь догадываться, если он не сообщит сам.
2. Выгружать структуру демо-базы после каждого обновления в отдельный файл и хранить. У меня однажды по непонятной причине грохнулись индексы одной из таблиц в рабочей базе. Выгрузил структуры рабочей и демо, сравнил, восстановил справедливость...
3. Выгрузку структуры можно производить много чем, а больше ничего и сделать нельзя. То есть можно, скажем, сделать графическое представление связей полей между таблицами с помощью конструктора запросов. Но, как я сказал выше, мы не знаем этих связей из самой БД. Это знание нам дано "свыше" :-)
Хочу: чёрные списки, пол людей, пользовательские поля изданий.
Кинопоиск: Image ПлюсКинопоиск: Image

User avatar
ilychuk
Star
Posts: 371
Joined: Mon Oct 22, 2012 1:58 pm
Location: Minsk, Belarus
Contact:

Re: Структура базы данных

Post by ilychuk » Thu Sep 17, 2015 5:24 am

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

Вот поэтому я и ищу единомышленников для создания "наглядного пособия" структуры базы. Но чтобы всем было одинаково удобно нужно найти ПО которое позволяет это делать или будет относительно доступным. Из найденного мной ПО подходят Novicat (замечательно пашет с SQlite) и MySQL Workbench (там есть миграция баз, но базу мувинизера пока мигрировать не получилось)

public2009
The leading part candidate
Posts: 104
Joined: Thu Sep 16, 2010 7:43 am

Re: Структура базы данных

Post by public2009 » Thu Sep 17, 2015 7:08 am

Желание, наверное, неплохое - сделать неофициальную схему структуры базы.
Особенно, если поддерживать её в актуальном состоянии.

Но надо ли?
База простая, основные связи очевидны. Кому надо - разберётся сам, кому не надо - тому не надо.
К тому же на месте разработчиков я бы не одобрил публикацию такой схемы.
А то шаловливые ручки натворят всякого в базе, а разработчикам потом расхлёбывай.

TerribleFloater
Superstar
Posts: 1868
Joined: Thu Feb 28, 2008 4:20 pm

Re: Структура базы данных

Post by TerribleFloater » Thu Sep 17, 2015 4:12 pm

OK, скачал я этот "Navicat" (триальная версия на две недели, дальше какие-то деньги нужны, но я её честно снесу).
1. Как именно с помощью этой самой программы построить эту самую структуру?
2. Чем (для программиста, не администратора!) эта программа отличается от бесплатной "SQLiteManager" от "Tahion Foundation"?

3. Как загнать существующую (чужую, проще сказать) БД MySQL в "MySQL Workbench" и увидеть или построить её структуру?
Хочу: чёрные списки, пол людей, пользовательские поля изданий.
Кинопоиск: Image ПлюсКинопоиск: Image

User avatar
ilychuk
Star
Posts: 371
Joined: Mon Oct 22, 2012 1:58 pm
Location: Minsk, Belarus
Contact:

Re: Структура базы данных

Post by ilychuk » Fri Sep 18, 2015 7:16 am

TerribleFloater wrote:OK, скачал я этот "Navicat" (триальная версия на две недели, дальше какие-то деньги нужны, но я её честно снесу).
1. Как именно с помощью этой самой программы построить эту самую структуру?
2. Чем (для программиста, не администратора!) эта программа отличается от бесплатной "SQLiteManager" от "Tahion Foundation"?
В чем отличие "для программиста" от "для администратора" я не знаю: учился и работаю программистом. Что касается Navicat - я не говорил что это идеальное решение. Я ее привел для примера, тем более что она понимает целый ряд баз данных. Ну а структура в ней строится просто. Для этого есть кнопка Model и часть этой модели показан на скриншоте
http://i66.fastpic.ru/big/2015/0918/2e/ ... 24422e.jpg
TerribleFloater wrote: 3. Как загнать существующую (чужую, проще сказать) БД MySQL в "MySQL Workbench" и увидеть или построить её структуру?
"MySQL Workbench" - это инструмент, а не БД. И там также можно сделать схему как на скриншоте выше. Причем структуру в принципе он строит сам на основе связей ключей. А для "загнать чужую базу" там существует миграция баз данных, которая тоже понимает SQLite

TerribleFloater
Superstar
Posts: 1868
Joined: Thu Feb 28, 2008 4:20 pm

Re: Структура базы данных

Post by TerribleFloater » Fri Sep 18, 2015 8:19 am

ilychuk wrote:
TerribleFloater wrote:1. Как именно с помощью этой самой программы построить эту самую структуру?
2. Чем (для программиста, не администратора!) эта программа отличается от бесплатной "SQLiteManager" от "Tahion Foundation"?
В чем отличие "для программиста" от "для администратора" я не знаю: учился и работаю программистом.
Для программиста не нужны две кнопки слева от кнопки Model :-) А вот администратору очень полезны. И да, кнопка Model полезна именно программисту. Разница с SQLiteManager обнаружена.
ilychuk wrote:Что касается Navicat - я не говорил что это идеальное решение. Я ее привел для примера, тем более что она понимает целый ряд баз данных. Ну а структура в ней строится просто. Для этого есть кнопка Model и часть этой модели показан на скриншоте
http://i66.fastpic.ru/big/2015/0918/2e/ ... 24422e.jpg
Только строится руками, да? Проще сказать, рисуется.
Точно так же руками я "построил" структуру в бесплатном OpenOffice:
Image
Она тут ужата, чтобы уместилась на один экран, поэтому такая "запутанная" :-) Но и здесь, и в Navicat её рисует человек, а не сама программа. Вот появились в БД две таблицы насчёт search_rules — никакая программа их сама не учтёт и связей ихних не создаст, ведь так?
Кстати, возможно (только возможно!), подобную картинку можно было бы нарисовать и во встроенном в Мувинайзер FastReport?.. Впрочем, я сомневаюсь — просто потому, что он ведь принудительно урезан, и в нём недоступны многие таблицы.
ilychuk wrote:
TerribleFloater wrote: 3. Как загнать существующую (чужую, проще сказать) БД MySQL в "MySQL Workbench" и увидеть или построить её структуру?
"MySQL Workbench" - это инструмент, а не БД. И там также можно сделать схему как на скриншоте выше. Причем структуру в принципе он строит сам на основе связей ключей. А для "загнать чужую базу" там существует миграция баз данных, которая тоже понимает SQLite
Я в курсе, что это инструмент, причём инструмент для разработки (forward engeneering). А здесь нужен инструмент для анализа (reverse engeneering); типа DB Visualizer, например. Правда, насчёт тамошнего эквивалента кнопки Model я совершенно не уверен :-(
Я встречал и сходные онлайн-инструменты, причём для совместной работы. Вот только подписка на команду из 5-ти человек стоит $79 в месяц ;-)
И структуру "в принципе на основе связей ключей" любой инструмент построит только если эти самые связи (references) заложены в БД. А их тут просто нет. Как и было сказано выше.
Хочу: чёрные списки, пол людей, пользовательские поля изданий.
Кинопоиск: Image ПлюсКинопоиск: Image

User avatar
ilychuk
Star
Posts: 371
Joined: Mon Oct 22, 2012 1:58 pm
Location: Minsk, Belarus
Contact:

Re: Структура базы данных

Post by ilychuk » Fri Sep 18, 2015 10:40 am

Спасибо за развернутый ответ: очень информативно.

Что касается OpenOffice - я про него забыл и на работе ваша картинка не открывается - дома гляну. Я в свое время рисовал схему в Microsoft Visio. Но там нужно было САМОМУ рисовать не только связи, но и структуры таблиц. Программы на подобии WorkBench, Novicat и DB Visualizer часть этой работы берут на себя, что заметно упрощает весь процесс.

Что касается связей между таблицами (references), то я писал разработчикам, отправлял скриншоты, пример базы и описание "Чем полезны связи таблиц и каскадное обновление" - Обещали посмотреть. Хотя там работы на самом деле - максимум день. и весь код программы стал бы заметно проще.

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

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

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests