mysql-workbench диаграмма - Генерировать диаграмму ER из существующей базы данных MySQL, созданной для CakePHP





онлайн импорт (6)


Вопрос не кажется Cake PHP специфичным, и на нем был дан ответ здесь: Auto Generate Database Diagram MySQL

Для приложения CakePHP я создал базу данных MySQL.

Какой инструмент можно использовать для создания ER-диаграммы базы данных? Поля и отношения между таблицами создаются так, как нравится cakePHP.

заранее спасибо!




Попробуйте MySQL Workbench . Он содержит очень хорошие инструменты моделирования данных. Просмотрите их screenshots для диаграмм EER (Enhanced Entity Relationships, которые представляют собой диаграммы ER).

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




Используйте MySQL Workbench . создать файл дампа SQL вашей базы данных

Выполните следующие шаги:

  1. Нажмите Файл-> Импорт-> Обратный инженер MySQL Создать скрипт
  2. Нажмите «Обзор» и выберите сценарий создания SQL.
  3. Убедитесь, что «Место импортированных объектов на диаграмме» отмечено.
  4. Нажмите кнопку «Выполнить».
  5. Вы сделали.



CakePHP предназначался для использования в качестве клонирования фреймворка Ruby on Rails, выполняемого на PHP, поэтому любая обратная инженерия базовой базы данных бессмысленна. Диаграммы EER должны быть перепроектированы с использованием слоя модели.

Такие инструменты существуют для Ruby. Здесь вы можете увидеть диаграммы EE Redmine с обратной обработкой моделей. Не из базы данных. http://redminecookbook.com/Redmine-erd-diagrams.html

Со следующими инструментами: http://rails-erd.rubyforge.org/ http://railroady.prestonlee.com/




Если вы не хотите устанавливать MySQL workbench и ищете онлайн-инструмент, это может помочь: http://ondras.zarovi.cz/sql/demo/

Я часто использую его для создания простых схем БД для различных приложений, которые я создаю.




Для загрузки с большим количеством операций записи и чтения вы получите выгоду от InnoDB. Поскольку InnoDB обеспечивает блокировку строк, а не блокировку таблицы, ваш SELECT s может быть одновременно не только друг с другом, но и со многими INSERT . Однако, если вы не намереваетесь использовать транзакции SQL, установите фиксацию InnoDB на 2 ( innodb_flush_log_at_trx_commit ). Это дает вам большую производительность, которую в противном случае вы потеряли бы при перемещении таблиц из MyISAM в InnoDB.

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

Наконец, будьте в курсе различных нагрузок таблиц. У вас не будет одинакового отношения чтения / записи на всех таблицах. Некоторые более мелкие таблицы со 100% -ными чтением могут позволить себе оставаться MyISAM. Аналогично, если у вас есть несколько таблиц, на которых написано около 100%, вы можете воспользоваться INSERT DELAYED , но это поддерживается только в MyISAM (предложение DELAYED игнорируется для таблицы InnoDB).

Но контрольный показатель, чтобы быть уверенным.







mysql cakephp mysql-workbench reverse-engineering er-diagrams