Это более общий вопрос о том, как будет выглядеть хороший подход в моем сценарии. Итак, давайте перейдем прямо к тому, чего я хотел бы достичь на следующем примере ...
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 таблиц, на которых пользователь может создать собственное представление.