Я видел много инструментов, которые могут перепроектировать ERD от существующей базы данных, но я не смог найти тот, который способен к автоматической разметке схемы разумным способом. Большинство из них просто шлепается все объекты вниз друг на друге и прекращает дело. Некоторые предпринимают попытку организации объектов, но они не делают очень хорошего задания ее.
Есть ли какой-либо инструмент там, который перепроектирует структуру существующей базы данных и затем автоматически разметит ее способом, который легко понять и показывает организацию базы данных? Если бы я должен был сделать такой инструмент, то у меня был бы он, минимизируют длину строк, соединяющих объекты, минимизируют количество строк, которые пересекают друг друга и заставляют группы связанных объектов стоять друг из друга. Я также попытался бы вывести, какие таблицы являются справочными таблицами, которые mana-many промежуточные таблицы, и т.д. и размечают объекты, таким образом, что эти роли очевидны для человека, смотрящего на схему.
У меня точно нет финансирования для создания вышеупомянутого, но у меня действительно есть некоторое финансирование для покупки инструмента как этот, если это хорошо.
Править: Я должен упомянуть, что пытаюсь схематически изобразить базу данных с 100 + таблицы, таким образом, я хотел бы автоматизировать как можно больше ее. База данных не является той, с которой я очень знаком, таким образом, я надеюсь извлекать уроки из рассмотрения схемы вместо того, чтобы вывести то, что я знаю в схему (который, кажется, то, что большинство инструментов схематического изображения разработано для).
Пока у Вас есть внешние ключи в Вашей базе данных, я нашел, что Visio делает довольно хорошее задание. У меня была postgresql база данных приблизительно с 150 таблицами из четырех различных объединенных проектов, которые были соединены через различные внешние ключи, и она сделала потрясающее задание извлечения всех отношений и собирания в группу таблиц. Схема имела только несколько перекрывающихся строк несмотря на обширные внешние ключи. Кроме того, из-за внешних ключей логические элементы группировались приятно, это было ясно который базы данных большинство таблиц, порожденных в.
вероятно, зависит, на которой базе данных Вы используете. Я попробовал это Microsoft SQL Server Management Studio, и он создает и размечает схему. Я не могу действительно сказать, отвечает ли это Вашим требованиям, но специальный выпуск свободен, таким образом, всегда возможно испытать его.
SchemaCrawler автоматически генерирует схемы от баз данных, с помощью GraphViz. Действительная мощность SchemaCrawler - это
Просто загрузите SchemaCrawler, поместите его куда-нибудь в Ваш путь Java и выполните его следующим образом:
java -classpath $(echo ../../_schemacrawler/lib/*.jar | tr ' ' ':') schemacrawler.Main -server=mysql -database=your_database_in_localhost -user=your_user -password=your_password -infolevel=maximum -command=graph -outputformat=pdf -outputfile=my_database_diagram.pdf $*
Заметьте также, что можно выбрать различные форматы файлов как
и многие другие.
Можно также решить, называет ли внешний ключ, порядковые числа столбца, и названия схемы должны быть отображены путем установки следующих свойств в конфигурационном файле SchemaCrawler, schemacrawler.config.properties.
Существует больше информации и примеров по http://schemacrawler.sourceforge.net/diagramming.html