Penso che sia così semplice, ma sembra troppo facile e ovvio e perché nessuno lo ha suggerito 10 anni fa. E so che ci sono molte persone molto più brillanti di me nel mondo degli sviluppatori di software ...
Quindi mi è stato chiesto di fare un lavoro quick-n-dirty (2 giorni) per un'applicazione di una pagina web: raccogliere un modulo, recuperare e duplicare il modulo come testo e non formare elementi. Tutto via browser La pila di strumenti è limitata all'impostazione di base della LAMP e qualsiasi cosa i web ragazzi / ragazze possano spremere tramite jquery, ecc.
Nessun problema. Normalmente installerei una tabella db con un campo per ogni elemento catturato, tipi di dati appropriati, lunghezze, ecc. Analizziamo e disinfettiamo l'input, inseriamo in db con istruzioni preparate, ecc. Quindi recuperiamo e ri-visualizziamo tramite un modello e gettoni. Roba di base per CRUD, non avere a che fare con alcune web app che fanno già cose del genere, nessun problema.
Ma il problema è che la forma che deve essere compilata ha aree in cui più sottocartelle (quali scuole hanno frequentato - scuola, date, gradi se premiati - potrebbe essere una, potrebbero essere sette). E ci sono molte altre forme che potrebbero utilizzare lo stesso processo. E i ragazzi / ragazze del web vogliono essere in grado di farlo senza che io sia così coinvolto (sono d'accordo: la programmazione è solo il 30% circa del mio lavoro).
Quindi penso che ogni modulo abbia qualcosa in comune con tutti gli altri: nome, cognome e indirizzo email. Qualcos'altro dopo che è in aria, l'unica garanzia è che nessun upload di file.
Se dovessi impostare un semplice script di elaborazione generico sottoposto a una tabella, presentato come
, chiederei dei problemipk | webform name | first name | last name | email address | submission timestamp | complete form as JSON string
??
Fare qualcosa del genere sembra così semplice e banale ... Devo chiedermi ...
Configura l'inserto e recupera quasi un'API per i ragazzi / ragazze del web per catturare i dati, semplicemente presentandoli con la stringa JSON. Non preoccuparti di una seconda / terza / nona tabella con le relazioni di ritorno al materiale demografico, dovendo creare database e tabelle per ognuno individualmente, ecc.
Mi sto ponendo dei problemi per l'archiviazione dei dati in questo modo? Sembra troppo facile. Cosa mi manca?
EDIT - il seguito
E ora, pochi mesi dopo ... Sono andato con la memorizzazione della stringa JSON per rappresentare il modulo completo, ma solo come una soluzione rapida e sporca. Ricreare il modulo con il contenuto degli utenti per le modifiche è banale e funziona bene.
Sfortunatamente, sono state bloccate su versioni molto vecchie del software a causa di ITS (fanno infrastruttura e roba ERP, il mio gruppo è separato e fa tutto il "normale" web) e cambiano qualcosa come PHP 5.6 o anche 7.x è disponibile il momento, e basta dimenticare MongoDB o qualsiasi altra roba lato server.
Sto lavorando con la gente del front end e sto cercando di trovare una soluzione reale, ma le cose sono in sospeso all'inizio del semestre (tutti noi andiamo a nutz a fare altre cose per un mese) quindi qualsiasi altra soluzione presentata sarebbe ottima.