• IT
betterdocs-cat-icon 1-svg

Qualcosa è andato storto?

Condividi con noi la tua opinione per migliorare la nostra documentazione.

    Getting Started

    • Introduzione Instant Developer Cloud
    • Composizione della piattaforma
    • Struttura dei progetti
    • La programmazione relazionale
    • Apprendere l’uso di Instant Developer Cloud

    Struttura di un'applicazione

    • Introduzione (applicazione e sessione)
    • Le videate
    • Classi e librerie
    • Risorse e CSS
    • I pacchetti
    • Programmazione asincrona

    Struttura del database

    • Introduzione (struttura del database)
    • Definizione degli schemi relazionali
    • Scrittura di query ed esecuzione di comandi
    • Gestione dei database nel cloud
    • Il Cloud Connector

    Document Orientation

    • Introduzione Document Orientation
    • Definire Documenti e Collection
    • Utilizzo dei documenti
    • Estensione dei documenti

    Datamap

    • Introduzione Datamap
    • Creazione di liste di documenti
    • Modifica dei documenti con videate di dettaglio
    • Datamap innestate e ricorsive

    IonicUI

    • Introduzione IonicUi
    • Le pagine IonicUI
    • Definire il contenuto delle pagine
    • Il page controller
    • Il metodo app.popup
    • Videate come elementi visuali
    • Personalizzazione di IonicUI
    • Configurazione dei ruoli e degli accessi

    Pannelli e Griglie

    • Introduzione (Pannelli e Griglie)
    • Anatomia di un pannello
    • I pannelli a runtime

    Web API e file system

    • Introduzione Web API
    • Il file system
    • Consumare Web API
    • Esporre Web API
    • Web API in formato OData
    • Utilizzare Web API Instant Developer Foundation
    • Web API in formato OpenAPI

    Sincronizzazione

    • Introduzione sistema di sincronizzazione
    • Scambio di messaggi in tempo reale
    • Document Orientation Remota
    • Sincronizzazione del database offline

    Debugging e Test

    • Introduzione Debugging e Test
    • Strumenti e tecniche di debug
    • Test automatico delle applicazioni

    Traduzioni

    • Introduzione (traduzioni)
    • Processo di traduzione
    • Funzionamento del framework di localizzazione
    • Localizzazione di numeri e date

    Integrazioni di componenti esterni

    • Introduzione (integrazioni di componenti esterni)
    • Integrazione di componenti JavaScript
    • Integrazione di librerie di back-end
    • Integrazione di un plugin Cordova

    Launcher e Pubblicazione

    • Introduzione Launcher
    • I plugin nativi
    • Test delle applicazioni nei launcher
    • Pubblicazione sugli store
    • Configurazioni per gli store
    • Fase di build e di invio
    • Gestione dell’applicazione

    Analitiche e Feedback

    • Introduzione Analytics e Feedback
    • Installazione ed uso di Analytics
    • Raccolta dei feedback degli utenti

    Server di Produzione

    • Introduzione server di produzione
    • I server di Instant Developer Cloud
    • I server My Cloud
    • I server Self Managed
    • Tabella comparativa

    Cloud Connector

    • Cos’è il Cloud Connector
    • Installazione Cloud Connector
    • Configurazione
    • Installazione come servizio
    • Esempio di utilizzo
    • Controllo remoto
    • Note

    Team Works

    • Perché non basta GitHub?
    • Team Works: concetti base
    • Organizzazione del lavoro consigliata
    • Risoluzione dei problemi relativi a Team Works
    • Domande sull’utilizzo di Team Works

    Manuale PWA

    • Cos’è una PWA?
    • Creazione di una PWA su Instant Developer Cloud
    • Life Cycle
    • Installazione PWA
    • Funzionalità
    • Plugin
    View Categories

    Definizione degli schemi relazionali

    Contenuti
    • Tipi di dati
    • Note sulle foreign key
    • Importazione degli schemi di database
    • Aggiornamento dello schema
      • Riferimenti ai database per nome

    La definizione degli schemi entità-relazioni dei database viene effettuata in modo visuale tramite l’IDE di Instant Developer Cloud. Gli oggetti del database modellabili sono i seguenti:

    1. Tabelle
    2. Campi
    3. Relazioni (primary e foreign key)
    4. Indici

    Non è quindi supportata la definizione visuale di viste, stored procedure o trigger, o altri oggetti specifici di un particolare tipo di database. Se si necessita di tali oggetti sarà possibile definirli tramite comandi SQL personalizzati.

    yokd4wUShZbB vCPfzJ6sZGzsqx9ixjjpHxDdGULlyzV 06OvxFvqcQla0XKXp6e5vNWEbiayLO70s3uN6wm5C 7XzJHfr49cOpW7ZRVtQOz5ixHCAQcHF3G X1MQoLlnJHHzkPjBbt Instant Developer

    Esempio di schema entità-relazioni

    Tipi di dati #

    I tipi di dati gestibili per i campi delle tabelle sono quelli tradizionali; non sono stati previsti tipi speciali per evitare problemi di compatibilità con i dispositivi offline. A riguardo dei tipi di dato si segnala in particolare:

    1. Per la definizione delle chiavi primarie si consiglia di utilizzare un unico campo di tipo UUID con lunghezza 24. Questo tipo di campo viene rilevato e automaticamente gestito da Instant Developer Cloud in modo portabile.
    2. Per i campi di tipo carattere si consiglia di utilizzare il tipo varchar, senza specificare una lunghezza massima.
    3. Per la memorizzazione di file, si consiglia di utilizzare il file system, quindi l’uso dei campi BLOB e CLOB è sconsigliato.
    4. Il tipo JSON viene tradotto nel database come varchar per poterne gestire la compatibilità. L’indicazione del tipo viene utilizzata a livello di framework ORM per mappare l’informazione nel tipo di proprietà corretta a livello di entità.
    5. I campi di tipo datetime, date e time vengono sempre memorizzati includendo il timezone. Per default viene usata la zona “0”. Il framework converte questi dati nel timezone della sessione tramite i metodi della classe app.locale.
    6. Se un campo può contenere solo un insieme limitato di valori, si consiglia di definire una lista valori a livello di database e poi indicarla come dominio del campo.

    Note sulle foreign key #

    Le relazioni fra tabelle (foreign key) vengono definite in modo visuale nell’IDE. 

    Fra le proprietà di una relazione, è presente il flag Crea Indice che permette di associare un indice alla relazione. Per default viene attivato per tutte le nuove relazioni. Questo è particolarmente importante per le relazioni di tipo possessivo, quelle che vengono usate per collegare un record padre ai propri figli, come avviene, ad esempio, quando si caricano le righe di un ordine data la sua testata. Se, al contrario, una relazione viene usata prevalentemente a scopo identificativo, ad esempio quando dalla riga d’ordine si accede ai dati del prodotto ordinato, è possibile deselezionare questo flag.

    Si noti la possibilità di definire le regole di aggiornamento e cancellazione delle foreign key. Impostando il valore no-action sia per l’aggiornamento che per la cancellazione, la relazione diventerà di tipo logico, cioè l’IDE ne terrà conto, ma non verrà fisicamente creata nel database. 

    Nota importante: per i database di tipo SQLite tutte le relazioni sono di tipo logico, a prescindere dalle regole impostate. Questo deriva dalla particolare implementazione presente nei vari dispositivi che non consente di creare foreign key di tipo fisico.

    Importazione degli schemi di database #

    Se un database esistente viene connesso al server IDE tramite Cloud Connector è possibile importare la struttura esistente tramite l’apposita funzione presente nell’IDE. In questo caso verrà impostato anche il flag Schema sola lettura che previene l’aggiornamento dello schema da parte di Instant Developer Cloud.

    Aggiornamento dello schema #

    L’aggiornamento degli schemi avviene in modalità diverse a seconda del caso d’uso. 

    1. Se il database è presente nel server IDE, esso viene aggiornato quando l’applicazione viene lanciata in anteprima, oppure tramite il comando Aggiorna schema.
    2. Se il database è presente in un server Instant Developer Cloud, esso viene aggiornato quando l’applicazione viene installata tramite la console.
    3. Se il database è di tipo SQLite, esso viene aggiornato quando l’applicazione viene lanciata per la prima volta.

    Gli schemi di database non vengono quindi aggiornati se:

    1. Il database ha il flag Schema sola lettura attivato.
    2. L’applicazione non viene installata tramite la console di Instant Developer Cloud e non è di tipo offline. Nota: in caso di installazione in modalità manuale, l’aggiornamento dei database non viene gestito da Instant Developer Cloud.

    Non è consigliabile attivare l’aggiornamento dello schema di un database per il quale lo schema è stato creato tramite importazione.

    La procedura di aggiornamento dello schema viene eseguita tramite il confronto fra la struttura precedente del database, memorizzata in un record di una tabella speciale chiamata z_schema che viene creata da Instant Developer Cloud, e quella attuale. Il confronto non tiene quindi conto dello schema fisico attuale, ma dello schema del database corrispondente al contenuto della tabella z_schema. In questo senso, modificando manualmente lo schema del database si potrebbe arrivare ad una situazione non più gestibile dal framework.

    Si noti infine che non tutte le modifiche possono essere gestite tramite aggiornamento, a causa di limitazioni imposte dai database server. Prima di installare l’applicazione, si consiglia di verificare che l’aggiornamento possa essere eseguito testando l’operazione sul server IDE con una versione del database corrispondente a quella di produzione.

    Riferimenti ai database per nome #

    I database vengono creati e riferiti per nome sia nei server cloud che nelle applicazioni offline. Nei server IDE, al nome del database viene preposto il nome dell’utente che sta usando l’IDE.

    È quindi possibile avere più applicazioni che utilizzano lo stesso database, anche in progetti diversi. In questi casi è necessario che l’aggiornamento dello schema avvenga sempre dall’applicazione più aggiornata. 

    Se si utilizza lo stesso database in progetti diversi, si consiglia di condividere lo schema tramite componenti; in questo modo lo schema potrà essere facilmente allineato fra i progetti. Si consiglia inoltre di marcare come Schema sola lettura tutti i database tranne quello da cui si desidera pubblicare le modifiche.

    Durante l’installazione delle applicazioni tramite la console, essa verifica la coerenza dell’aggiornamento richiesto dall’installazione e, nel caso, chiede conferma dell’operazione.

    Ti è stato utile?
    Aggiornato il 15 Aprile 2024
    Introduzione (struttura del database)Scrittura di query ed esecuzione di comandi
    Contenuti
    • Tipi di dati
    • Note sulle foreign key
    • Importazione degli schemi di database
    • Aggiornamento dello schema
      • Riferimenti ai database per nome

    Caratteristiche

    • Perché Instant Developer
    • IDE e Ambiente di Sviluppo
    • Pubblicazione Web & Mobile
    • Software Life Cycle & DevOps
    • Database, Integrazione, Sync
    • Collaboration & Workflow

    Soluzioni

    • Freelance
    • Software House
    • Company IT
    • Casi di successo
    • Applicazioni Sviluppate

    Azienda

    • Chi Siamo
    • Contatti
    • Lavora con noi

    Risorse

    • Documentazione
    • Risorse e Tutorial
    • Blog
    • Starter Kit
    • Pricing
    • Inizia Ora
    Crea un account e Inizia Gratis
    • Seguici su Twitter
    • Seguici su Facebook
    • Seguici su LinkedIn
    • Seguici su YoutTubeSeguici su YouTube
    Questo sito è protetto dalla tecnologia reCAPTCHA Enterprise e si applicano l'Informativa sulla privacy e i Termini di servizio di Google.
    Google Policy | Termini
    © Pro Gamma - p.iva, c.f. e iscr. Camera di Commercio Bologna 01985091204 - Sede legale Via D'Azeglio, 51 40123 Bologna - Italia Pro Gamma Instant Developer® è un marchio registrato.
    Privacy Policy | Cookie Policy
    • IT