XML vs SQL pour les petits projets?


10

Je travaille sur un petit projet qui n'aura qu'un seul utilisateur à la fois car c'est une application locale (développée en WPF et C #). Pour stocker des données, je pensais utiliser un fichier XML mais je me demande si ce serait la meilleure approche.

À quoi servent les données:

  • Shedules
  • Bibliothèque de fichiers dans des dossiers (avec le nom de l'artiste, le titre, l'emplacement sur le disque dur)
  • Peut-être des statistiques basées sur les données du calendrier
  • ...

Les informations concernant la bibliothèque seraient bien en XML, j'imagine, mais pour tout le reste, je n'en suis pas si sûr. LINQ to SQL semble également beaucoup plus rentable en termes de vitesse de développement que LINQ to XML. Est-ce correct ou je me trompe? Je ne savais pas si je devais poster ceci sur SO ou ici, mais cela semblait plus approprié ici!

Merci d'avance


2
"Un utilisateur à la fois", dit le code "dans six mois, ce sera notre seule source de revenus et nous devrons prendre en charge 4 000 utilisateurs simultanés". Planifiez en conséquence :)
Bryan Boettcher

Vous n'avez même pas besoin d'exécuter un service de serveur SQL, vous pouvez simplement en faire une base de données attachée à un fichier si vous avez peur de migrer d'une machine à l'autre.
Peter Smith

2
peu importe ce que vous choisissez, créez une couche d'abstraction afin que vous puissiez facilement passer à un autre schéma quand cela devient nécessaire
ratchet freak

Réponses:


13

Si vous allez faire beaucoup d'E / S, SQL est votre meilleur choix. SQL est conçu pour bien fonctionner pour obtenir / stocker des données, c'est pourquoi nous l'utilisons pour stocker des données sur quelque chose comme un site Web par opposition à XML.

XML est bon pour les données lisibles par l'homme qui peuvent être partagées et interprétées entre les applications, comme cela était son intention. L'analyse syntaxique XML implique BEAUCOUP de manipulation de chaînes qui peuvent être très coûteuses à mesure que la taille de l'ensemble de données augmente.


3
N'oubliez pas l'édition compacte.
JeffO

2

Il semble que vos données pourraient potentiellement croître à l'infini (sauf si j'ai mal compris votre application). Dans ce cas, je dirais qu'il est préférable de laisser le stockage persistant à un moteur de base de données pour l'efficacité et les performances.


1

Allez avec l'approche de la base de données. Il s'agit de la technologie éprouvée pour gérer les données.

Sur le problème des performances, vous pourrez peut-être accélérer votre accès en ayant des index, alors qu'en XML, aucun moyen de ce type n'existe.

Sur une base de données, vous pouvez calculer des données statistiques à l'aide de fonctions d'agrégation, en XML, vous devez coder cela.

En utilisant une base de données, vous pouvez modifier la structure de la base de données avec une relative facilité (ajouter une colonne, un tableau, etc.) et il existe des outils pour vous aider à déplacer les données entre les bases de données, où, comme en XML, vous devez le faire vous-même.

Dans une base de données, vous pouvez appliquer des règles d'intégrité et vous pouvez laisser les utilisateurs écrire leurs propres sélections si nécessaire, pas assez facile en XML.

Dans la base de données, vous pouvez trier les données très facilement, vous pouvez également ajouter de la sécurité. En utilisant une base de données, vous pouvez oublier la taille et la concurrence, donc à l'avenir, votre application pourra se développer sans modifications de code.

Pour ce qui précède, utilisez une base de données! EK

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.