1

Тема: Інструменти для графічного планування БД

Привіт.

Якими інструментами для планування БД ви користуєтеся?
Останнім часом знайшов для себе два цікавих сайти:
Перший;
Другий.

Але, можливо, ви знаєте кращі інструменти? Особисто мені багато функціоналу не треба:
1) Легке створення таблиць, стовпчиків, введення даних;
2) Зв’язки мають легко простежуватися (можливо, якесь виділення кольором тощо).
3) Було б чудово, якби ще й введення даних було можливе одразу в "намальовані" стовпчики;
4) Вивід у SQL код це однозначно;

І для лінивих: планування query з виводом SQL коду (наприклад, хочу звести дві таблиці разом з певною умовою - який вигляд матиме таблиця, який SQL код зробить таким вигляд). Гуляти, так гуляти. :D

Дякую.

Подякували: Анатолій, 221VOLT, leofun013

2

Re: Інструменти для графічного планування БД

Бази даних полюбляю цю справу, але якось не дійшов до планування чого там?.. мг, перепрошую, а можна ширше розкрити поняття графічне планування БД, що це саме мається на увазі? та й коли воно доречне оць це графічне планування БД?
Наприклад, я б запропонував би хіба що такий варіант як форум, таблиця повідомлень така от,.. і вибірка з таблиць така от,... це наприклад, форум не реалізовував тому це лиш припущення.
Хоча напевно ж ще міг би припустити, графічне оформлення для реалізації БД, якщо скажімо інтернет-магазин..

Загалом, пане Esforeal, а для чого ви взагалі використовуєте графічне планування БД? та в чому його користь?

Подякували: 221VOLT1

3

Re: Інструменти для графічного планування БД

Можливо HeidiSQL?
Хоча сам не користувався.

4 Востаннє редагувалося Tenevyk (26.03.2016 23:06:05)

Re: Інструменти для графічного планування БД

Анатолій написав:

можна ширше розкрити поняття графічне планування БД, що це саме мається на увазі

Якщо ви перейшли по посиланням, то могли б собі хоча б приблизно уявити. Прикріпив скріншот, подивіться.

Анатолій написав:

Загалом, пане Esforeal, а для чого ви взагалі використовуєте графічне планування БД? та в чому його користь?

Мені якось легше спланувати базу даних та зв’язки між ними, коли я їх можу просто намалювати (користуючись, наприклад, сайтами, на які я посилався). Та й код не потрібно набирати з нуля, графічно побудував базу - і "в путь" (експорт SQl, а потім імпорт у той же PhpMyAdmin чи ще куди).

VTrim написав:

Можливо HeidiSQL?
Хоча сам не користувався.

Переглянув. Ні, тут немає графічної побудови, це не така програма.

Post's attachments

Screenshot_213.png 61.23 kb, 262 downloads since 2016-03-26 

Подякували: leofun011

5 Востаннє редагувалося Tenevyk (26.03.2016 23:34:16)

Re: Інструменти для графічного планування БД

Недавно завантажив собі чисто погратися MySQL Workbench.

Спочатку подумав, що там діаграми (так вони називають графічну побудову бази) будуються лише після того, як створиш таблиці. Але тільки-но спробував - можна й без існуючих таблиць діаграми будувати. PK та FK поставити не проблема.

Мабуть, буду тепер цією програмою користуватися. Хоча сайтом чомусь приємніше :)

Подякували: 221VOLT, leofun012

6

Re: Інструменти для графічного планування БД

Такі графічні інструменти потрібні, коли будуєте дуже складну архітектуру БД, або ви, скажімо, аналітик, який не хоче заглиблюватись в SQL, і якому треба сформулювати задачу для розробника БД.

На скільки я зрозумів, то це не ті випадки, і ви самі збираєтесь будувати відносно прості зв’язки між таблицями. В такому разі все ж краще не лінуватись і потроху вчитись самостійно це робити.

HeidiSQL справді є дуже зручним інструментом, але я не раджу використовувати його на продакті, бо у нього є хронічна дуже неприємна хвороба - при модифікації якогось існуючого об’єкта в БД (таблиці, процедури і т.д.) він може "упасти" не довівши справу до кінця, а це означає, що він може просто видалити об’єкт.

Таке трапляється дуже рідко, але трапляється. В інших аспектах він просто дуже зручний, має ітуїтивно-зрозумілий інтерфейс, не споживає багато ресурсів, вміє мабуть усе що необхідно в стандартних випадках: створення об’єктів БД, адміністрування, dump баз, написання запитів із підказками назв таблиць, функцій і т.д.

Головні правила Foreign Keys (зв’язків таблиць):
1. поля, які ви зв’язуєте повинні мати однаковий тип даних, однакову максимальну кількість символів, та однакове налаштування Unsigned (Unsigned вказуєте чи допускається значення менше нуля);
2. у полях дочірної таблиці, не повинно бути значень, яких немає у батьківської таблиці (якщо такі є, то їх спочатку треба видалити).

Подякували: 221VOLT, Tenevyk, Анатолій, leofun014

7

Re: Інструменти для графічного планування БД

ktretyak написав:

2. у полях дочірної таблиці, не повинно бути значень, яких немає у батьківської таблиці (якщо такі є, то їх спочатку треба видалити).

Тобто не може бути значення FK, що не веде на таке ж значення PK?

8

Re: Інструменти для графічного планування БД

Esforeal написав:

Тобто не може бути значення FK, що не веде на таке ж значення PK?

Якщо у вас у батьківській таблиці у полі ID є всього три значення: 1, 2, 3, то у дочірній таблиці не повинно бути будь-яких інших значень у тому полі, що посилається на ID батьківської таблиці. Причому ID може бути й не PK, а звичайне поле (не впевнений, але здається так).

9

Re: Інструменти для графічного планування БД

ktretyak написав:
Esforeal написав:

Тобто не може бути значення FK, що не веде на таке ж значення PK?

Якщо у вас у батьківській таблиці у полі ID є всього три значення: 1, 2, 3, то у дочірній таблиці не повинно бути будь-яких інших значень у тому полі, що посилається на ID батьківської таблиці.

А, ну це зрозуміло. На не існуючі значення посилатися ніяк не вийде.

10

Re: Інструменти для графічного планування БД

Esforeal написав:
Анатолій написав:

можна ширше розкрити поняття графічне планування БД, що це саме мається на увазі

Якщо ви перейшли по посиланням, то могли б собі хоча б приблизно уявити. Прикріпив скріншот, подивіться.

Та ні я звісно перейшов за посиланням, за що додатково дякую ресурс собі зберіг на власному сайті в корисних лінках.
Але справді особисто вважаю, що графічні інтерфейси варті у великих проектах, де напевно ж з декілька таблиць, та різні відносини між таблицями, один до багатьох, декілька посилань з однієї таблиці на іншу(foreign key) та інше на зразок, якщо ж мову вести про веб-будівництво, то вважаю, необхідності в графіці немає.

Створив таблицю та при необхідності вносиш дані та зчитуєш/вибираєш дані - все просто.

Навіть більше того, не знаю чи є сенс при наявних компютерних потужностях ліпити складні SQL-запити, там з UNION та підзапитами, можна зробити два три простих запити до таблиць БД, як на мене це буде й простіше й зрозуміліше,як для розробника так і для можливого наступного апгрейдера вашого коду.