Я использую ORM для автоматического создания таблиц из классов моделей. Я называю классы и их поля так, как это естественно для приложения. Затем ORM использует те же имена для таблиц и столбцов и автоматически генерирует имена других объектов, таких как ограничения и последовательности, которые полностью абстрагируются ORM.
Я не объявляю, как должны именоваться таблицы, столбцы и т. Д. Я оставляю это на усмотрение ORM. Я вижу в этом здравый смысл с точки зрения приложения.
Администратору БД для моей команды это не нравится. Администратор базы данных говорит, что если столбец «B» в таблице «A» имеет ограничение внешнего ключа для поля «Y» в таблице «X», то имя должно быть «A.X_Y» вместо «AB» ». Администратор базы данных говорит, что это «правильный» способ присвоения имен внешним ключам, и поэтому ORM называет их неправильно . Оба механизма ORM, с которыми я знаком, позволяют явно отображать имена классов / полей на имена таблиц / столбцов, поэтому я знаю, что можно разместить DBA без изменения классов.
Мой вопрос: , на практике, делает ли это (явное сопоставление имен) обязательным вводом дополнительного объекта (т. Е. Новых файлов / разделов конфигурации, нового кода) или связывания (т. Е. Импорта, декораторов, аннотаций)? ) в приложении, которое иначе не могло бы существовать? Конструкции ORM могут быть разными, поэтому я думаю, что ответ может быть разным для разных двигателей.
Если ответ на этот вопрос почти повсеместно да, я бы посчитал хорошим аргументом, что администратор БД должен уступать ORM в интересах производительности, исходя из логики, что база данных существует для удовлетворения потребностей приложения, а не наоборот. Комментарии по этому вопросу также приветствуются.
Обратите внимание, я НЕ прошу конкретных рекомендаций о том, как следует называть классы / поля / таблицы / столбцы.