Dati
Tramite i dati è possibile creare una struttura organizzata per memorizzare informazioni. Se hai esperienza con i database puoi paragonare i “Dati” a MySQL MyISAM, in breve, allo stato attuale
Non è possibile creare JOIN
Non sono supportate le transazioni
Una tabella dato è formata dai controlli che una volta associati ad un dato hanno opzioni aggiuntive a differenza degli stessi controlli associati alle pagine.
Configurazione dei controlli
Queste opzioni sono configurabili solamente quando i controlli sono associati ai dati.
Tabelle interne
Il controllo viene visualizzato negli elenchi dei valori, sia lato master e sia lato amministrativo, bisogna porre attenzione, perché la visualizzazione di troppi controlli rende lenta e difficoltosa la lettura.
Mobile
Il controllo viene visualizzato negli elenchi dei valori sui dispositivi mobile. Il checkbox viene abilitato solo nel caso il checkbox del punto precedente è attivato (Tabelle interne). In genere, per rendere facile la visualizzazione bisogna impostare massimo un controllo lato mobile.Univoco
Se impostato univoco, durante il salvataggio, il sistema verifica che il valore utilizzato sia univoco, evitando quindi valori duplicati. Nel caso il valore fosse già presente viene restituito l'avviso inserito dentro “Avviso valore duplicato” nella configurazione del controllo.Nascosto
Con questa opzione attivata il controllo non sarà presente dentro l'editor dei Master. Con i controlli nascosti è possibile salvare delle informazioni programmaticamente tramite la OnSave o tramite PHP. Porre attenzione a NON impostare obbligatorio e nascosto senza impostare un valore di default perché cosi facendo, il sistema bloccherà i salvataggi ai Master.Default
Questo valore viene utilizzato dal sistema quando, durante il salvataggio del nuovo valore, il campo rimane vuotoEdit.Tabella
Se selezionato permette di modificare il valore del controllo direttamente nella tabella elenco, senza quindi dover entrare dentro l'editor. Questo campo permette 2 (o 3 opzioni se numero):Per le altre opzioni verifica la pagina Controlli
- Sola lettura: l'impostazione default, non permette la modifica
- IncrementoDecremento: accanto al textbox (che è in sola lettura), vengono visualizzati due pulsanti + e - che permettono di incrementare o diminuire il valore di 1
- Editor: il textbox con il valore viene reso modificabile direttamente con accanto un pulsante check per salvare
PHP: Performance su lettura e scrittura
Potrebbe essere il caso in cui la lettura e la scrittura tramite PHPOBJ diventi abbastanza lenta. Questo si verifica nel caso in cui il dato che si sta utilizzando contenga molti controlli.Sui sistemi (in base alle idee del cliente) che dovranno crescere nel tempo è buona norma progettare tenendo conto fin da subito i seguenti punti:
Nella GetList evita di scegliere tutti i controlli ma indica nell'array solo i controlli di cui hai bisogno
- Se devi filtrare su più colonne (GetList/GetCount) invece di usare un operatore AND/OR usa un solo controllo testuale che raccolga il contenuto di tutti i controlli del dato, per popolarlo usa la OnSave: in questo modo la ricerca verrà effettuata solo su un controllo e sarà molto più veloce.
- Evita le OnSave complesse, infatti il salvataggio blocca temporaneamente il database e potrebbe bloccare tutte le letture e gli altri salvataggi allungando la coda di attesa e rallentando tutto il sito.
- Se devi scegliere un solo elemento e questo è univoco, utilizza la GetItem piuttosto che la GetList, infatti la GetItem è ottimizzata per restituire un solo valore
- Evita di annidare GetList, se devi recuperare valori da una sottotabella/sottodato, utilizza la OnSave per raggruppare i valori dei figli in un controllo padre in modo da avere il risultato già pronto
- Si possono salvare milioni di record, tuttavia se si ipotizzano valori di queste grandezze è bene valutare se questo sia lo strumento adatto, le performance infatti potrebbero degradare in modo importante se questi record devono essere letti e scritti con grande frequenza
- Il sistema di query utilizza uno strato di cache legato alla tabella del dato che memorizza i risultati, dalla seconda chiamata il risultato viene restituito dalla cache che può raggiungere fino a 4 volte la velocità della prima query, tuttavia esiste un problema riguardo la scrittura e la scadenza, infatti dopo una scrittura sulla tabella, l'intera cache viene invalidata e quindi il sistema deve rifare la query sul database.
La cache non deve essere pensata come un workaround dell'ottimizzazione e di una progettazione pensata per le performance, infatti se il sito in questione inizia a ricevere scritture continuamente nel giro di poco tempo l'applicativo diventerà molto lento rallentando anche i siti presenti sulla stessa macchina (vedi infrastruttura).

