Quello che sto cercando è un modo per generare automaticamente un semplice CMS basato sul web per un semplice database SQL preesistente. Per essere utilizzato dagli "amministratori delle app", non dal pubblico in generale.
Qualcosa che:
- consente le operazioni di base di creazione / aggiornamento / eliminazione sulle tabelle DB
- capisci le relazioni tra tabelle semplici e nasconde le chiavi db all'utente CMS
- può avere una convalida generica o personalizzata
Ad esempio, supponiamo di avere 2 tabelle SQL.
product category
-----------------
id - int (PK)
name - string
-
product
--------
id - int (PK)
category_id - int (Fk)
name - string
default - bool
le istanze tipiche potrebbero essere
- riga della categoria: 1, carne
- riga di categoria: 2, frutto
.
- riga prodotto: 1,1, pancetta, vero
- riga prodotto: 2,1, pollo, vero
- riga prodotto: 3,2, banana, vero
- riga prodotto: 4,2, arancione, falso
il CMS basato sul web generato automaticamente avrebbe le seguenti pagine:
- pagina indice
- elenca la pagina della categoria esistente (con aggiungi, modifica, elimina pulsanti su ogni riga)
- pagina del modulo di categoria (utilizzata durante l'inserimento, modifica)
- elenca la pagina del prodotto esistente (con pulsanti aggiungi, modifica, elimina) su ogni riga)
- pagina del modulo prodotto (utilizzata durante l'inserimento, la modifica)
Nella pagina del modulo prodotto, ci sarebbe un campo modulo per campo DB, ma, e questo è fondamentale, il campo 'categoria' sarebbe un elenco a discesa che mostra le categorie esistenti per nome anziché per id.
Alcune immagini per spiegare di cosa sto parlando.
Al momento, abbiamo una piccola struttura personalizzata sviluppata internamente per fare questo genere di cose, ma sono sicuro che ci sono offerte migliori sul mercato, semplicemente non riesco a trovarle.
Sono aperto alle tecnologie, potrebbe essere una cosa php con un file di configurazione, potrebbe essere qualcosa che genera automaticamente il CMS da alcune entità Java JPA con annotazioni come @OneToMany e simili. Tutto ciò che è configurato in un istante, non modifica la struttura del database, può essere esteso e può essere utilizzato da qualcuno che non conosce le chiavi esterne db e simili.