Domanda

Sto scrivendo un'applicazione DB distribuita con un front-end di accesso. Essenzialmente un mde con alcuni moduli e rapporti. Dovrei usare un mdb di accesso per contenere le tabelle di backend o usare MySQL o qualche altro database?

È stato utile?

Soluzione

Personalmente userei SQL Server Express o MySQL. Si adattano meglio di un back-end di Access e quando sei pronto per allontanarti da Access, puoi farlo senza dover convertire il back-end e il front-end.

Altri suggerimenti

SQL Server Express può essere una buona soluzione, ma presenta anche alcune limitazioni piuttosto rigide. Inoltre, dovresti assicurarti che la sua licenza soddisfi le tue esigenze.

Se le esigenze di concorrenza e scalabilità sono limitate (diciamo 10-15 utenti simultanei con quantità moderate di I / O), non c'è niente di sbagliato nell'usare un back-end MDB. Non sono un fan di Access, ma so per esperienza che di solito funzionerà.

Inoltre, l'amministrazione di un back-end MDB è quasi gratuita, mentre MySQL o SQL Server Express richiedono un lavoro DBA effettivo. Non ha senso andare con qualcosa di più grande se sei abbastanza sicuro che non ne avrai mai bisogno.

Per la distribuzione effettiva, si desidera utilizzare un database reale, non il motore di Access / Jet DB.

Detto questo, il bello dell'accesso è che ha uno strumento (guarda nel menu) per dividere un singolo file MDB in database e codice. Fallo e quindi punta il codice sulla nuova fonte di dati.

Potrebbe essere necessario modificare leggermente alcune query.

Penso che SQL Server Express sarebbe la tua migliore opzione. MySQL è un buon DB per il tuo back-end, ma Access si integra meglio con SQL Serv Express (ovviamente MS vuole che tu usi i suoi prodotti, anche se è gratuito) e Express Edition è piuttosto buona considerando che è gratuita. Se l'applicazione finisce per ridimensionarsi in un secondo momento, un aggiornamento a SQL Server a pagamento è semplice e il driver è lo stesso.

Penso che dovresti definire cosa intendi per "Applicazione DB distribuita". Quel termine, a quanto ho capito, di solito metterebbe Jet fuori gioco per il back-end.

Nessuno può effettivamente rispondere alla tua domanda senza l'indicazione della popolazione dell'utente, dell'ambiente operativo, dei requisiti di sicurezza e affidabilità, ecc. Se è per 10 utenti e non è un dato di linea, un back-end Jet potrebbe essere perfetto e rendere lo sviluppo e l'amministrazione un gioco da ragazzi. Se hai 100 utenti, vorresti sicuramente andare con un server back-end. Se hai importanti considerazioni sulla sicurezza (ad es. Conformità HIPAA), probabilmente vorrai andare con un database con sicurezza a livello di server integrata e non con Jet.

Ma ci sono molte applicazioni in cui un back-end Jet sarebbe perfetto, veloce e completamente affidabile.

C'è una terza opzione: potresti usare qualcosa come Dati EQL in modo da poter utilizzare il normale back-end di Access, ma dai a ogni persona la propria copia (e la sincronizzazione tra di loro) per aiutare con problemi di scalabilità multiutente. In questo modo non è necessario andare nella complessità dell'uso di un "reale" DB backend.

Scegliendo MySQL dovresti installare MySQL Connector (ODBC) in ogni client. SQL Server Express sarebbe una buona scelta se non ti piace distribuire componenti adizionali, inoltre ADO funziona meglio con MS SQL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top