Шаблон именования для модели, которая обращается к нескольким таблицам - PullRequest
0 голосов
/ 04 августа 2011

Что я знаю, так это то, что мы называем модель именем таблицы.Но как насчет модели, которая обращается к нескольким таблицам.Каким должен быть для них стандарт именования?

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Предполагая, что вы имеете в виду в контексте шаблона MVC, Модель обращена наружу для манипулирования Контроллером и потребления Видом.Имена классов Model должны быть выбраны, чтобы помочь авторам View и Controller.Я не согласен с тем, что имена деталей реализации Модели (таблиц базы данных) обязательно являются правильной основой для имен классов Модели.

Чтобы взять простой пример: предположим, у нас есть ЗАКАЗЧИКТаблица.Затем мы создаем класс Customer, все очень приятно, мы прекрасно его понимаем.Теперь предположим, что по соображениям производительности (в этом надуманном примере это маловероятно, но в реальных системах с устаревшими базами данных это возможно), возможно, в интересах совершенно другой системы, мы решили создать таблицу CUSTOMER_SUMMARY, содержащую только несколько столбцов, итаблица CUSTOMER_DETAILS, содержащая все остальные столбцы.Должны ли мы теперь переименовать наш класс Customer?Он берет данные из обеих таблиц, поэтому мы больше не согласны с нашим соглашением об именах, но с точки зрения View это данные клиента, это как раз то, что им нужно.Я говорю «нет», имя в точности верно, детали реализации изменились, но это не важно для наших потребителей.

Аналогично, если у нас есть ORDERS, ORDER_LINES, PRODUCTS и класс, который содержит информациюо Заказе, который может собирать данные из всех трех таблиц, я бы назвал этот класс Заказ .Если в будущем мне понадобятся сводные данные, взятые только из ORDERS, я могу использовать Class OrderSummary.Я пытаюсь выбрать имя, которое легко понять "извне".

0 голосов
/ 04 августа 2011

Я думаю, что нет прямых соглашений об именах как таковых.Вы можете использовать реальное доменное имя для вашей модели в соответствии с вашим бизнесом.Допустим, вы хотите отобразить AddressInfo, Street , City таблиц в один класс модели (домена), тогда имя будет выглядеть примерно так: Address.

Кроме того, отображение нескольких таблиц для одного класса модели (домена) нехорошая практика в Entity Framework.Потому что он будет генерировать очень сложные запросы, что снижает производительность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...