Spring MVC — Динамические веб-формы — Конструктор форм — Проблема дизайна

Мне нужен совет по БД, а также по архитектуре.

Я разрабатываю приложение, которое использует подход построителя форм для определенных областей. Например. Регистрация пользователя, где помимо некоторых основных полей для пользователя, дополнительные поля могут быть настроены администратором:

Пример конструктора форм

У меня есть несколько таблиц в базе данных, в которых будут храниться метаданные для этих вновь созданных полей:

FIELDS_TXN
______________
F_ID
F_NAME
F_ORDER
F_TYPE_ID

FIELD_TYPE_MST
______________
F_TYPE_ID
F_TYPE

FIELD_OPTIONS_TXN
______________
F_OPTION_ID
F_OPTION_VALUE
F_FIELD_ID

(Это очень грубый дизайн БД)

Теперь я знаю, какие новые поля мне нужно показать в форме, но как мне сохранить эти дополнительные данные?

Например, поля по умолчанию для пользователя: имя, фамилия и адрес электронной почты.

User.java

@Entity
@Table(name="user_txn")
public class User{

    @Id
    @GeneratedValue
    @Column(name="id")
    private int id;

    @column(name="first_name")
    private String firstName;

    @column(name="last_name")
    private String lastName;

    @column(name="email")
    private String email;

    public int getId(){
        return this.id;
    }

    public void setId(int id){
        this.id = id;
    }

    public String getFirstName(){
        return this.firstName;
    }

    public void setFirstName(String firstName){
        this.firstName = firstName;
    }

    public String getLastName(){
        return this.lastName;
    }

    public void setLastName(String lastName){
        this.lastName = lastName;
    }

    public String getEmail(){
        return this.email;
    }

    public void setEmail(String email){
        this.email = email;
    }
}

Теперь, если администратор добавит или настроит дополнительные поля, такие как дата рождения, адрес, город, страна, пин-код для пользователей, как мне сохранить значения для этих полей?

Один из подходов, который я имею в виду, - это создать таблицу, например. пользовательские_поля? Но как динамически отображать спящий режим для настраиваемых полей для динамически создаваемой таблицы??

Это хороший подход для создания динамических форм в веб-приложении?


person Priyank Thakkar    schedule 29.09.2015    source источник
comment
Хороший вопрос. Я разрабатываю веб-приложение CRM, которое требует таких функций. В этот момент у меня есть некоторые идеи.   -  person felipsmartins    schedule 13.12.2015
comment
Здравствуйте, не могли бы вы предоставить дополнительную информацию о том, как вы создали первоначальный интерфейс для этого дизайна и какие технологии вы использовали? Я пытаюсь создать что-то подобное и не знаю, с чего начать, поэтому любые отзывы будут очень признательны.   -  person Blawless    schedule 10.07.2017


Ответы (1)


Вы можете использовать подход сохранения всех полей как «поля» в вашей БД. Допустим, у вас есть таблица "Поля", поле, которое добавляет админ, добавит запись в эту таблицу. Аналогичным образом создавайте формы. Весь подход к приложению может быть таким, что все поля создаются при запуске приложения. Может помочь !!

person RakhuNathan    schedule 20.11.2015