Modello di archiviazione e operatività di PostgreSQL
L’inizializzazione crea due tabelle quando non esistono:
form0_submissionscontiene i record principali.form0_submissions_childrencontiene i record delle sezioni ripetibili annidate.
I nomi sono configurabili. Ogni tabella proietta i metadati comuni in colonne tipizzate e salva il
record completo in form_values come JSONB. La tabella figlia conserva gli identificatori del
record principale e del genitore immediato per ricostruire le relazioni annidate.
Il connettore crea indici per stato, form, timestamp, bozza, versione, changeset e autore, oltre a
un indice GIN per form_values e trigger che aggiornano i timestamp del database.
onFormSubmit() inserisce prima il record principale e poi quelli annidati ricorsivamente. È un
confine di scrittura, non un’API pubblica di query né un servizio di sincronizzazione. Le
applicazioni devono usare un proprio livello di accesso e decidere come gestire gli ID duplicati.
Il proprietario del database resta responsabile di migrazioni, backup, test di ripristino, conservazione, monitoraggio, capacità, controllo degli accessi e requisiti normativi.