Permettere agli utenti di aggiungere i propri campi personalizzati in un'applicazione Spring MVC Hibernate - Qual è l'approccio ideale?

3

Potremmo aver visto applicazioni come JIRA, o molti CRM o altre applicazioni che consentono agli utenti di definire i propri campi personalizzati per un'entità, e fare una serie di cose con esso, come renderle obbligatorie, convalidare i loro valori e così via.

Voglio fare proprio questo nel Prodotto che stiamo creando.

Supponiamo che il nostro prodotto consenta a un utente di creare il proprio progetto. Un progetto ha attributi predefiniti come

  • Nome (stringa)
  • Descrizione (CLOB)
  • Tipo (stringa)
  • Proprietario (stringa)
  • Stato (stringa)

Ora, come utente, vorrei aggiungere il seguente campo personalizzato al mio progetto

  • Scadenza (data)

Idealmente dovrebbe essere in grado di creare un campo personalizzato nel mio prodotto che possa acquisire i seguenti dettagli:

  • Nome del campo
  • Tipo di campo
  • Valore predefinito
  • Elenco dei valori (se il campo deve essere un elenco a discesa)
  • Obbligatorio o no

Allo stesso modo, vorrei consentire questa funzione di aggiungere attributi personalizzati non solo a un progetto, ma anche ad alcune altre entità.

Questo è lo stack tecnologico che stiamo utilizzando e finora siamo abbastanza d'accordo.

  • Spring MVC, JSP e jQuery come Web Framework e per le viste
  • JPA con Hibernate per la persistenza
  • Oracle, MS SQL, MySQL - Attualmente il nostro prodotto funziona su questi basi di dati.

Come accosto questo requisito? Mi piacerebbe essere educato su quanto segue:

  • Come posso decidere il miglior modello di dati per questo? Aggiungo una tabella separata per le definizioni dei campi personalizzati e un'altra per i loro valori e li associo alla mia entità tramite una chiave esterna?
  • Cosa devo fare nel mio layer JSP / JS per colorare dinamicamente uno schermo con i campi personalizzati che sono definiti?
  • Come faccio a consentire a Spring MVC e Hibernate di gestire tutto questo modello di dati e le viste?

Sono estremamente dispiaciuto se la mia domanda non è incorniciata o formulata correttamente. Sono relativamente nuovo a queste tecnologie e vorrei imparare con ogni sfida.

Grazie, Sriram

    
posta sriramsridharan 06.01.2017 - 06:43
fonte

0 risposte

Leggi altre domande sui tag