Недавно я прошел процесс обновления моей базы данных, нормализуя множество объектов. Очевидно, теперь у меня есть еще несколько таблиц, чем у меня. Множество данных, которые я использую на веб-сайте, доступно только для чтения, поэтому это просто для денормализации с использованием представления, однако существуют сущности, которые могут извлечь выгоду из денормализованного извлечения, но все равно нуждаются в обновлении.Необходимые рекомендации - с использованием структуры сущностей с нормализованными данными
Вот пример.
A User may be a Member
A Member may have a Profile
A Member may have an Account
Кроме того, у меня есть еще 3 таблицы поиска.
Всего существует 3 таблицы для пользователя и 4 таблицы для пользователя.
В идеале я могу создать 2 вида из приведенных выше таблиц.
Однако, Пользователь должен быть обновлен, как и сущности, принадлежащие Участнику. Кроме того, существует 6 отдельных таблиц, связанных с пользователями/членами, то есть FavouriteCategories, которые также необходимо время от времени получать и обновлять.
Я изо всех сил стараюсь придумать лучший, самый эффективный способ сделать это.
Я просто не мог использовать представления и приводить все сущности и поисковые запросы в модель, но я бы полагался на EF для создания повторных запросов. Материал, который я прочитал, указывает на то, что EF не лучше разбирается в соединенных данных.
Я мог бы добавить как представление, так и таблицы, используя таблицы только для обновлений. Это кажется неаккуратным из-за дублирования, сложности модели, а также недоиспользования функциональности модели EF.
Возможно, я мог бы использовать представление readonly для извлечения данных и создания хранимых процедур. Я считаю, что процесс использования EF с хранимыми процедурами является немного взломанным, поэтому я бы, вероятно, сохранил сохраненные procs от EF и просто передал параметры и вызвал SP с помощью традиционных методов. Это снова похоже на полупустой дом.
Я не так опытен с .net или EF, поэтому я бы оценил некоторые твердые советы ни по методам, о которых я говорил выше, ни к какой-либо лучшей технике, чтобы добиться этого. Я не хочу взламывать файл edmx на этом этапе, потому что ... ну, это просто неправильно.
У меня есть несколько объектов, которые выиграют от правильного решения. Пример пользователя является одним из самых простых, поэтому есть много шансов извлечь выгоду из правильного подхода.
Помощь и совет будут очень признательны.