Что такое модель базы данных? - PullRequest
0 голосов
/ 14 мая 2019

Что такое "модель базы данных"?Является ли это подходящим классом, содержащим методы для чтения и записи методов в базу данных?

После небольшого изучения MVC я уверен, что скажу, что часть Model - это то место, где я должен общаться сбаза данных.В настоящее время у меня есть свои классы сущностей (такие как классический "Person") и класс DatabaseModel, который имеет открытые методы для выполнения запросов SQL к базе данных.

Затем в других классах в моем контроллере я создаюОбъект DatabaseModel и выполнение открытых методов в этом классе для получения результатов SQL-запроса.

Правильно ли я подхожу к этому? Кроме того, у меня есть ощущение, что этот класс DatabaseModelсобирается стать очень большим.Есть ли хорошая стратегия для ее устранения (возможно, для связанных запросов).Я думал о том, чтобы разделить его на частичные классы в C #, но сейчас это мое лучшее предположение.

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Немного изучив MVC, я с уверенностью могу сказать, что в части «Модель» я должен общаться с базой данных.В настоящее время у меня есть свои классы сущностей (такие как классический "Person") и класс DatabaseModel, который имеет открытые методы для выполнения SQL-запросов к базе данных.

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

Затем в других классах моего контроллера я создаю объект DatabaseModel и выполняю открытые методы в этом классе для получения результатов SQL-запроса.

Это должно быть заданием для вашего хранилища.где вы получаете результаты SQL-запроса, имейте в виду, что это не фактический контроллер.

Правильно ли я подхожу к этому?Кроме того, у меня есть ощущение, что этот класс DatabaseModel станет очень большим.Есть ли хорошая стратегия для ее устранения (возможно, для связанных запросов).Я думал о том, чтобы разделить его на частичные классы в C #, но сейчас это мое лучшее предположение.

Вы почти у цели, сейчас у вас есть Модель (Отображение базы данных), Репозиторий (где вы выполняете и извлекаете данные), но вам не хватает Контроллер (где вы получаете репозиторий с помощью внедрения зависимостей и выполняете фактическую работу, например, отображаяданные в ViewModel ), в ViewModel (где вы отображаете данные таким образом, что получаете и отправляете только то, что вам нужно, из данных в представление, на первый взгляд это может показаться бессмысленным,почему мы не можем просто отправить данные в представление, но это дает много преимуществ, например, вы имеете дело только с тем, что вам действительно нужно, вы можете проверить ввод пользователя (проверка на стороне клиента), прежде чем сопоставить его с данными и т. д.), а затем, наконец, View (ваш дисплей).

Так что для меня MVC - это просто стандарт, это не значит, что у вас есть только Model View и Controller, я nevМне понравилась аббревиатура, сначала она вызывает слишком много путаницы, для меня это должно быть: M (модель, отображение базы данных) C (контроллер) VM (ViewModel) V (представление) , а такжехранилище между Моделью и Контроллером, но давайте оставим это без внимания, потому что это вещь личных предпочтений, большую часть времени люди просто запутываются в разнице между Моделью и ViewModel.

0 голосов
/ 14 мая 2019

Модели базы данных - это структура отображения для вашей схемы базы данных, в таком случае это будет класс Entity, поэтому вернемся к определению;это было сказано.Чтобы взаимодействовать или запрашивать вашу базу данных, у вас есть 2 общих шаблона, которым вы можете следовать: шаблон DAO , и просто это класс, который будет содержать основные операции запроса для каждого объекта CRUD операции или [Сохранить, Обновить и Удалить], это означает, что если у вас есть PersonEntity, у вас должен быть PersonDAO.

Второй шаблон - это Шаблон репозитория , и я думаю, что он будет у вас в любом мощномFramework, и будет поддерживать вас с готовыми методами CRUD для непосредственного использования его без необходимости писать код определения для каждой операции, в отличие от шаблона DAO.

Говоря о количестве кода в каждом классе, на самом деле это зависит, однако выследует придерживаться стратегии чистого кода, то есть для любого класса не следует делать все, чтобы иметь более 400 строк кода, это как пример. Если вам действительно не нужно это.

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