Как мне разработать базу данных для Django? - PullRequest
2 голосов
/ 26 февраля 2012

Мне нравится использовать приложение с графическим интерфейсом для проектирования баз данных с использованием ERD. В настоящее время я использую диаграмму EER бесплатной MySQLWorkbench .

Когда мне нравится, как выглядит ERD, я Инженер-форвард ERD в MySQLWorkbench для создания фактической базы данных. Затем я анализирую базу данных MySQL с django-admin.py inspectdb до Reverse Engineer в выводе фрагмента кода Python для models.py.

Джанго.

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

Существует ли хорошая (и желательно бесплатная) программа разработки графического интерфейса пользователя ERD, специально разработанная для Django?

Ответы [ 2 ]

4 голосов
/ 26 февраля 2012

Если вы хотите спроектировать свои модели на уровне базы данных, так, как вы описываете, вам нужно сделать именно это: спроектировать свой SQL, а затем преобразовать его в модели Django.

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

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

Самая близкая вещь - это команда graph_models, которая является частью расширений команды Django . Это позволяет вам визуализировать ваши модели (вы по-прежнему пишете их в коде Python, но визуальное представление поможет вам выполнять итерации быстрее).

3 голосов
/ 26 февраля 2012

Обычно дизайн макета базы данных для приложений django не является обычным, и это может привести к неоптимальному дизайну.

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

...