Печать ER-диаграммы для базы данных mySQL (более 800 таблиц) - PullRequest
3 голосов
/ 22 июня 2010

У нас есть система, построенная Parallels, которая опирается на огромные (более 800) таблиц для поддержки всего.

Мне нужно изучить эту систему, чтобы иметь возможность писать запросы для извлечения данных для генерации отчетов по различным потребностям.

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

Я попытался перетащить все таблицы с помощью TOAD - что привело к сбою :) Со второй попытки я перетаскивал таблицы A-N, а через (долгое время) таблицы M-Z успешно.

Мне даже удалось изменить их размер, упорядочить и сохранить ERD в файл.

Однако, когда я перехожу к печати или предварительному просмотру, подпроцесс для печати падает, хе-хе.

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

Я был бы очень признателен за любые советы или идеи о том, как действовать, прежде чем я даже приступил к написанию сценариев и кода.

База данных на mySQL под CentOS, некоторые таблицы - InnoDB, некоторые - MyISAM. Кажется, что во многих таблицах есть внешние ключи.

Спасибо!

Ответы [ 5 ]

7 голосов
/ 22 июня 2010

Я работал в месте, где было несколько сотен столов (около 1 тыс.), И никто не знал, что происходит в системе, компания росла и нанимала много людей.Парню было поручено составить диаграмму, и он автоматически создал гигантский плиточный плакат, на котором были все столы с линиями, соединяющими разные столы (проходящие повсюду).Я не уверен, что он использовал, это были Unix и Oracle много лет назад (задолго до Linux и с открытым исходным кодом).Не было никакой реальной рифмы или причины для расположения таблиц в его диаграмме.Он успешно создал диаграмму каждой таблицы.«Плакат» был вывешен на стене в общей зоне и несколько раз осматривался, но никто никогда не использовал его, он был непригоден, слишком загроможден, слишком неорганизован.В результате я использовал MS-Word для создания одностраничной диаграммы, содержащей 20 основных таблиц (она прошла несколько итераций, пока я «обнаружил» новые основные таблицы) со строками для каждого внешнего ключа и каждой таблицы, расположенной логическим образом.,Я показал имя столбца, тип данных, обнуляемость, PK и все FK.Я положил свою диаграмму на стену рядом с монитором.В конце концов, все хотели получить копию моей схемы, включая человека, который сделал «постер».Когда я ушел с работы, они все еще передавали мою диаграмму новым сотрудникам.

Я рекомендую вам работать как исследователь, находить таблицы ключей и отображать их по мере необходимости, составляя столько конкретных диаграмм, сколько вам необходимоОткройте для себя систему.Попытка автоматически создать гигантский «плакат» не будет очень эффективной.

5 голосов
/ 22 июня 2010

Вы пробовали MySQL Workbench ? если вы не против окон, вы можете попробовать Enterprise Architect , а также

1 голос
/ 22 июня 2010

MySQL Workbench имеет несколько отличных инструментов для обратного инжиниринга из скрипта создания.Я не использовал его для таких больших баз данных, но вы должны проверить это.

Ссылка: http://wb.mysql.com/

0 голосов
/ 02 декабря 2013

Navicat 10.1 и более поздние версии могут выполнять эту работу. используйте инструмент моделирования и импортируйте в него базу данных, а затем переставьте ее по своему усмотрению. печать результатов в формате PDF или непосредственно на принтер.

0 голосов
/ 22 июня 2010

IIRC, MS Sql Server имеет несколько полезных утилит для создания диаграмм, я знаю, что это очень помогло, вы можете добавить таблицу, и она автоматически добавит все связанные таблицы.Если бы вы могли преобразовать свои таблицы в SQL-скрипт, совместимый с MS SQL, это могло бы помочь.

...