ORM: рукописная схема или автоматически сгенерированная? - PullRequest
5 голосов
/ 24 сентября 2008

Должен ли я использовать рукописную схему для моего проекта, разработанного на языке высокого уровня (например, Python, Ruby), или я должен позволить своему решению ORM автоматически сгенерировать его? В конце концов мне нужно будет мигрировать, не уничтожая все данные. Это нормально, если вы привязаны к конкретной РСУБД, но было бы неплохо, если бы такие функции, как ограничения и процедуры, могли как-то поддерживаться.

Ответы [ 4 ]

3 голосов
/ 21 ноября 2008

Я никогда не использую схему, созданную ORM.

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

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

2 голосов
/ 21 октября 2008

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

Также см. Мартин Фаулер об эволюции базы данных ; Я особенно рекомендую, чтобы генерация тестовых данных была частью настройки базы данных. Идея может быть немного недоразвита, поскольку нет четкого разграничения различных проблем в разных средах: разработка по сравнению с QA по сравнению с производством.

1 голос
/ 24 сентября 2008

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

0 голосов
/ 26 ноября 2008

Пусть ваше решение ORM генерирует его, а не просто использует его вслепую; прочитайте это и рассмотрите его.

...