Per un'applicazione web, dovrei creare a livello di codice le tabelle del database o fornire un file di schema e istruzioni?

0

Le poche LAMP applicazioni web che ho installato mi richiedono di creare da solo le tabelle del database necessarie, un file di schema, invece di farlo automaticamente con uno script o una pagina di configurazione. È una pratica normale e accettata? Nei miei progetti hobbistici trovo molto più semplice e senza problemi creare semplicemente le tabelle in codice. Come programmatore posso assicurarmi che sia fatto correttamente, e siccome l'utente non mi interessa, fallo funzionare!

Tuttavia, ho una conoscenza ed esperienza molto limitate nel mondo delle applicazioni web e della gestione dei database, quindi non conosco i pro e i contro di entrambi gli approcci.

Se dovessi rendere le mie applicazioni web LAMP disponibili per il download e l'installazione da parte di altri, dovrei continuare a creare la tabella nel codice o seguire l'esempio delle altre applicazioni che ho installato, e fornire semplicemente un file di schema con le istruzioni di installazione ?

    
posta x-x 26.03.2013 - 01:20
fonte

6 risposte

3

La maggior parte delle applicazioni Web che ho installato hanno una "procedura guidata" di installazione che viene eseguita quando prima si accede a dove è ospitato il sito e verrà eseguito gli script utilizzando una bella interfaccia, che è una funzionalità molto carina. Tuttavia, gli script sono tutto lì per me da vedere di solito e ho anche scavalcato il wizard di installazione tutti insieme e ho eseguito gli script sql da solo.

Questo richiama anche il punto dei requisiti del database .. è richiesto un determinato DB? se è così, allora si potrebbe anche creare l'installazione "wizard" ed eseguire automaticamente gli script poiché non c'è flessibilità del DB, tuttavia, se posso "scegliere" quale tipo di meccanismo di memorizzazione persistente usare (Modello di tipo 1), quindi Sarebbe davvero carino da parte tua fare un installatore in grado di gestire quel caso (questo è probabilmente un prodotto in sé!) ma NON mi aspetto che venga fornito un programma di installazione in tale scenario. Ma in questo caso stai per un pubblico diverso rispetto al tipico tipo "voglio installare un blog in modo da poter blog" tipo di utente ..

    
risposta data 27.03.2013 - 00:45
fonte
1

Hai intenzione di distribuirlo o sei tu che lo installerai? Nel primo caso, andare con uno script di installazione (o creazione dello schema alla prima esecuzione). In quest'ultimo caso, farebbe un file di schema. L'aspetto positivo della creazione dello schema manuale è che non è necessario fornire all'utente del database che i file PHP si collegano come qualsiasi diritto di modifica dello schema. Il principio del minimo privilegio e tutto il resto.

L'aspetto positivo della creazione automatica dello schema è, ovviamente, un vantaggio per i tuoi utenti.

    
risposta data 26.03.2013 - 02:42
fonte
1

Devi andare con uno script di installazione, che l'installatore può personalizzare.

C'è molto di più nella definizione di un database di quanto si possa facilmente includere nel codice dell'applicazione. Man mano che un sistema aumenta il posizionamento dei dati, le opzioni dell'indice diventano sempre più importanti. È bello avere uno script di installazione in cui si ha il controllo preciso su tutti i parametri del database, piuttosto che fare affidamento su un'inizializzazione automatica che raccoglie tutti i valori predefiniti.

    
risposta data 27.03.2013 - 06:16
fonte
1

L'utilizzo degli script per creare il database era il caso qualche volta. Era anche il momento in cui l'amministrazione del database è una professione a tempo pieno. La nostra applicazione veniva utilizzata con gli script sql di Oracle per gestire la creazione di db. Alcuni DBA hanno poi fornito feedback sull'indice mancante, ecc., Per le prestazioni.

Oggi spediamo con un database pre-costruito (postgres) e i clienti lo adorano. Questo ha anche ridotto il numero di chiamate di supporto relative all'amministrazione del database che dovevamo supportare. Il numero di applicazioni che ho provato di recente è arrivato anche con database trasparenti.

Riepilogo: Sì, la creazione del database deve essere gestita dall'applicazione o dall'installer. Ciò è particolarmente vero se i clienti target sono aziende molto piccole.

    
risposta data 27.03.2013 - 07:17
fonte
1

YAGNI si applica lì.

Se è solo per tuo uso, usa quello che funziona meglio per te.

Se è destinato alla distribuzione, è necessario fornire almeno istruzioni su come utilizzare il file dello schema o uno script di compilazione. Più facile sarà, più persone saranno interessate ad andare con la tua applicazione.

    
risposta data 27.03.2013 - 08:14
fonte
-1

Direi che è una questione di preferenza. Personalmente, preferirei costruire i tavoli da solo, nel mio codice. SQL e Entity Framework supportano entrambi i metodi.

    
risposta data 26.03.2013 - 01:23
fonte

Leggi altre domande sui tag