XML vs SQL para pequeños proyectos?


10

Estoy trabajando en un pequeño proyecto que solo tendrá un usuario a la vez, ya que es una aplicación local (desarrollada en WPF y C #). Para almacenar datos, estaba pensando en usar un archivo XML, pero me pregunto si este sería el mejor enfoque.

Para qué sirven los datos:

  • Horarios
  • Biblioteca de archivos en carpetas (con nombre del artista, título, ubicación en el disco duro)
  • Posiblemente estadísticas basadas en los datos del horario
  • ...

Me imagino que la información sobre la biblioteca estaría bien en XML, pero sobre todo lo demás, no estoy tan seguro. Además, LINQ to SQL parece ser mucho más rentable en términos de velocidad de desarrollo que LINQ to XML. ¿Es correcto o me equivoco? No estaba seguro de si debería publicar esto en SO o aquí, ¡pero parecía más apropiado aquí!

Gracias de antemano


2
"Un usuario a la vez" es el código por el que se habla "en seis meses será nuestro único flujo de ingresos y debe ser compatible con 4.000 usuarios simultáneos". Planifique en consecuencia :)
Bryan Boettcher

Ni siquiera tiene que ejecutar un servicio de servidor sql, simplemente puede convertirlo en una base de datos adjunta a un archivo si le preocupa migrar de una máquina a otra.
Peter Smith

2
no importa lo que elijas, crea una capa de abstracción para que puedas cambiar fácilmente a otro esquema cuando sea necesario
monstruo de trinquete el

Respuestas:


13

Si va a hacer muchas IO, SQL es su mejor opción. SQL está diseñado para funcionar bien para obtener / almacenar datos, por eso lo usamos para almacenar datos en algo como un sitio web en lugar de XML.

XML es bueno para los datos legibles por humanos que se pueden compartir e interpretar entre aplicaciones, como era su intención. El análisis XML implica MUCHAS manipulaciones de cadenas que pueden resultar costosas a medida que aumenta el tamaño del conjunto de datos.


3
No te olvides de la edición compacta.
JeffO

2

Parece que sus datos podrían crecer infinitamente (a menos que haya entendido mal su aplicación). En ese caso, diría que es mejor dejar el almacenamiento persistente en un motor de base de datos para obtener eficiencia y rendimiento.


1

Ir con el enfoque de base de datos. Es la tecnología probada para manejar datos.

En lo que respecta al rendimiento, es posible que pueda acelerar su acceso al tener índices, donde en XML no existen tales medios.

En una base de datos, puede calcular datos estadísticos utilizando funciones agregadas, en XML debe codificar eso.

Con una base de datos, puede cambiar la estructura de la base de datos con relativa facilidad (agregar columna, tabla, etc.) y existen herramientas para ayudarlo a mover los datos entre bases de datos, donde, como en XML, debe hacerlo usted mismo.

En una base de datos, puede aplicar reglas de integridad y puede permitir que los usuarios escriban sus propias selecciones si es necesario, lo que no es fácil en XML.

En la base de datos, puede ordenar los datos muy fácilmente, también puede agregar seguridad. Con una base de datos, puede olvidarse del tamaño y la concurrencia, por lo que en el futuro, su aplicación puede crecer sin cambios de código.

Para lo anterior, ¡use una base de datos! EK

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.