Я создаю веб-приложение, и оно имеет форму с некоторыми полями.Пользователь вводит данные из формы, но мне нужно разрешить пользователю добавлять, изменять или удалять поля и настраивать форму в приложении.Например, у компании ABC есть веб-приложение для хранения информации о клиентах через интерфейс формы.Форма по умолчанию содержит поля имени, адреса, телефона и т. Д., Но компания хочет сохранить информацию о членстве и добавить текстовое поле для ввода «Членство №».На серверной стороне эти пользовательские поля и значения должны быть сохранены.
Моя первоначальная идея была
Таблица клиентов
|--------|--------|-------------|--------|
| ID | name | address | phone |
|--------|--------|-------------|--------|
| 1 | Tom | somewhere | 0123456|
|--------|--------|-------------|--------|
Таблица полей
|--------|--------------|
| ID | name |
|--------|--------------|
| 1 | Membership No|
|--------|--------------|
Входная таблица
|------------|----------|----------|
|Customer_ID | Field_ID | Value |
|------------|----------|----------|
| 1 | 1 | ABC00001 |
|------------|----------|----------|
И присоединение к таблицам
with info as (
select *
from (
select a.Customer_ID, b.name, a.Value
from dbo.Input a
join dbo.Field b
on a.Field_ID = b.ID
) as info
pivot (max(value)
for Name in ([Membership No])) as fields
)
select c.Customer_ID, d.name, d.address, d.phone, c.[Membership No]
from info c
inner join dbo.Customer d
on c.Customer_ID = d.ID
order by Customer_ID`
И результат
|-----------|-------|-----------|---------|--------------|
|Customer_ID| name | address | phone | Membership No|
|-----------|-------|-----------|---------|--------------|
| 1 | Tom | somewhere | 0123456 | ABC00001 |
|-----------|-------|-----------|---------|--------------|
, но количество клиентов может составлять миллион, а количество настраиваемыхполя могут быть 10 или 20.
Есть ли лучший способ сохранить динамическую таблицу?