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