Я буду стоять в 2-х ролей здесь
- DBA: База данных администратора/дизайнер.
- Dev: Разработчик приложений.
Я предполагаю, что DBA является человек, который действительно знают все трюки базы данных. Рейалли знает.
DBA:
База данных является ключевым приложения и должны иметь предопределенную структуру для того, чтобы служить своей цели хорошо и с наилучшей производительности.
Если вы не можете использовать произвольную схему (которая нормально нормализована и хороша), тогда инструменты являются неправильными.
Dev:
база данных просто магазин данных, так что мы должны держать его в простой и сосредоточиться на приложении.
DBA:
База данных не магазин это ядро приложения. Нет приложения без базы данных.
Дев:
№ Приложение Ядро. Нет приложения без интерфейса и бизнес-логики, применяемой к нему.
И начинается война ...
Обе точки являются действительными, и это всегда компромисс.
Если база данных ТОЛЬКО будет использоваться RoR, то вы можете использовать ее более как простой магазин.
Если БД может использоваться другим приложением или он будет использоваться с большим количеством данных и высокого трафика это необходимо применять оптимальные методы.
Как правило, вы не можете не соглашаться с администратором базы данных.
Но они могут понять вашу ситуацию и позволить вам немного потерять стандарты, чтобы вы могли быть более продуктивными.
Таким образом, вам необходимо, чтобы работала тесно, вместе.
И вы должны говорить друг с другом, чтобы объяснить и доказать точку почему база данных должна быть как это или этого.
В противном случае команда сломана, а проект может быть неудачным с вероятностью вероятности.
ActiveRecord - очень удобный инструмент. Но он не может сделать все для вас. Он не предоставляет структуру базы данных по умолчанию, которую вы точно ожидаете. Поэтому он должен быть настроен.
С другой стороны. Если DBA может принять, что все PK - это автоматические добавочные целые числа, которые облегчат жизнь разработчика (по умолчанию это делает ActiveRecord).
С другой стороны, если разработчики согласятся с некоторыми ограничениями DBA, это упростит жизнь DBA.
Теперь, чтобы ответить на ваш вопрос:
как бы вы аргументировать для упрощения схемы
Do не аргументировать. Познакомьтесь с командой и доставьте сообщение и укажите, ПОЧЕМУ, что это должно быть сделано.
Возможно, это действительно не так, и вы не знаете ничего, может быть, они ничего не знают.
Вы можете согласиться с общей структурой базы данных и попытаться описать ее с использованием миграции RoR в качестве метаязыка.
Таким образом, они будут видеть общую картину, и вы будете использовать свои замечательные ActiveRecords. А также все будут на одной странице.
Можете ли вы определить «слишком сложно»? Если домен сложный, то 117 таблиц необязательно будут чрезмерными. –
Это скорее вопрос исследования, а не вопрос с точным ответом ... похожий на вопрос «какова ваша любимая цитата из программирования». Таким образом, я надеялся, что люди придумают свои собственные творческие ответы и объяснения, я действительно наслаждался вашим последним ответом, и если вы хотите быть более креативными, не стесняйтесь! – btelles