Quale database preferire durante lo sviluppo di un sistema di inventario medico WPF?

1

Ho un progetto per sviluppare un sistema di inventario per un negozio medico. Fino ad oggi, ho affrontato semplici requisiti che sono stati soddisfatti con XML come back-end db. La mia conoscenza dell'interazione con XML è abbastanza buona e posso fare praticamente qualsiasi cosa con XML usando LINQ-TO-XML.

Dato che questo è un sistema di inventario, sono un po 'confuso su quale database dovrei usare. Posso restare con XML o procedere con SQL Server 2008. Se utilizzo SQL Server, dovrò installare anche SQL Server su Client Machine. Questa è un'informazione importante perché SQL Server è un prodotto commerciale, quindi è necessario includerlo nel costo di stima del mio progetto.

    
posta Pankaj Upadhyay 10.09.2011 - 09:01
fonte

2 risposte

7

Non hai bisogno di SQL Server. È possibile utilizzare qualsiasi numero di database open source come MySQL e PostgreSQL. Ce ne sono altri come MongoDB, CouchDB, neo4j, ecc., Ma non hai davvero bisogno di soluzioni NoSQL (e imho, hanno un po 'più di una curva di apprendimento in quanto non sono ORM friendly e sono ancora relativamente nuove).

A seconda delle dimensioni dell'applicazione, potrei anche raccomandare SQLite, che è un database basato su file;) Tuttavia, consiglierei solo SQLite se non si dispone di un numero elevato di utenti simultanei o di un numero molto elevato set di dati. Vedi questo documento per ulteriori motivi sul perché e non usare SQLite.

Consiglio vivamente non di utilizzare XML per la tua soluzione di back-end in quanto non è scalabile e molto più incline all'errore rispetto all'utilizzo di una soluzione di database appropriata.

Dai un'occhiata al link per un wrapper gestito per SQLite.

Nota a margine: non ho usato C # in un certo numero di anni, quindi potrei mancare qualcosa in termini di supporto gestito al di fuori di SQLite.

    
risposta data 10.09.2011 - 09:16
fonte
1

Sebbene i tuoi requisiti non siano chiari, ecco alcuni punti che devi considerare:

1-XML non ha meccanismi di indicizzazione, se vuoi cercare in base a più criteri o unire dati diversi non puoi

I dati 2-XML sono principalmente di testo semplice, possono essere manomessi più facilmente di un database

3-XML non fornisce funzioni di aggregazione come SQL - Quindi dovrai codificare le funzioni di aggregazione, ecc.

4-XML non ha gestione della concorrenza, lavori con un file non una riga

5-Sicurezza dell'utente e diritti utente devono essere protetti - Questo di solito viene gestito tramite database o sicurezza integrata di Windows

6-La maggior parte dei generatori di report richiede un'origine dati che sia csv o un database (ovviamente è possibile creare un datatable o simile usando XML e passarlo al generatore di report come un oggetto, questo dipende dallo strumento selezionato)

I database 7 offrono un backup semplice e generalmente rapido.

8-È possibile aggiungere / rimuovere colonne dal database con relativa facilità

9-Database offre controlli di coerenza e vincoli, nonché l'elaborazione trascrizionale che consente di eseguire il rollback in caso di errori.

I 10 database offrono una procedura memorizzata che consente di eseguire la logica del server di incapsulamento al loro interno

11-Usando un database, puoi consentire al tuo utente di inserire query sql dinamiche invece di programmare ogni possibile rapporto

Come suggerito da "Demian Brecht", è possibile utilizzare SQLLite, MySQL, SqlServer / SqlServer Express, SybaseAnyWhere e il nuovo "SQL Server Denali". Questo collegamento può anche aiutarti: link e XML vs SQL per piccoli progetti?

    
risposta data 10.09.2011 - 09:33
fonte

Leggi altre domande sui tag