Динамический SQL-запрос в C #? В поисках лучшего подхода - PullRequest
0 голосов
/ 21 октября 2019

Это более общий вопрос о том, как будет выглядеть хороший подход в моем сценарии. Итак, давайте перейдем прямо к тому, чего я хотел бы достичь на следующем примере ...

database

table_clients
 id
 name

table_profiles
 id
 name

table_items
 description
 FK_profileId
 FK_clientId

Моя цель - обеспечить динамическое представление данных. Пользователь должен иметь возможность выбрать информацию, которую он хотел бы видеть. Вот так ...

настраиваемый вид 1

clientName   profileName   itemDescription
------------------------------------------
John         Home123       Milk
John         Home123       Cheese
John         Work          Project_A
John         Vacation1     Ticket_XY
Marc         My Favorites  Chocolate

настраиваемый вид 2

clientName   profileName
------------------------
John         Home123
John         Work
John         Vacation1
Marc         My Favorites

настраиваемый вид 3

clientName
----------
John
Marc

Некоторые технические деталио моем проекте: я работаю над веб-приложением с MSSQL для базы данных, C # .Net Standard и Entity Framework для сервисов и React для клиента. В этом вопросе я ищу «лучшую практику» со стороны базы данных / бэкэнда.

Я пришел к следующим идеям (много исследований Google):

  • Создание классаи сервис для каждого возможного просмотра. Конечно, это худшая идея.
  • Создание одного класса со всеми возможными свойствами и заполнение в зависимости от того, какое представление выбрано пользователем. Я думал о создании вызовов с помощью какого-то «Динамического SQL» (я не знаком с этим)
  • Создание чего-либо на стороне базы данных, например, представления или транзакции или что-то ...

Как видите, я никогда не делал ничего подобного раньше. Я мог бы просто сделать что-то, но моя самая большая проблема - сделать это правильно. Он должен быть масштабируемым и подходящим, даже если у меня есть более 50 таблиц, на которых пользователь может создать собственное представление.

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