Question

Je voudrais voir quelques exemples de bases de données simples de fichiers plats et la façon dont ils sont accessibles par une couche de données. Je l'ai écrit et lu à partir d'un fichier plat, mais je n'ai jamais créé une couche de données qui a accédé aux données d'une application à l'aide des fichiers texte.

Si possible, il serait agréable de voir un tutoriel qui avait une couche de données qui utilise une simple base de données de fichiers personnalisés plat. Un exemple qui permet d'économiser des objets métier personnalisés dans XML et les télécharge serait bien parce que XML est si populaire et facile à travailler.

Je serais également reconnaissant pour tous les liens vers des sites Web qui traitent les meilleures pratiques en ce qui concerne la conception des bases de données de fichiers plats, etc.

Mon but est d'avoir une solution pour stocker des données simples sur la machine d'un utilisateur et ne les avez pas besoin d'un logiciel spécial installé (comme SQL Server, etc.) afin de récupérer les données de l'endroit où il est stocké.

Je sais que cela est une question très générale, mais tous les conseils qui peuvent me diriger dans la bonne direction est le bienvenu.

Était-ce utile?

La solution

Vous avez obtenu vos définitions un peu mêlé, compréhensible en raison du grand nombre de technologies similaires autour d'aujourd'hui.

XML n'est pas un plat (ou base de données de fichier plat), mais à partir de la lecture de votre objectif, il ressemble à ce que vous voulez vraiment est une base de données relationnelle autonome plutôt que d'un fichier plat réel.

Comme d'autres, je recommande fortement SQLite à cet effet. Il existe des liaisons pour différentes plates-formes, .NET a System.Data.SQLite qui, dans un seul fichier, est à la fois le fournisseur de base de données et le moteur.

Les 2 grands avantages de l'utilisation SQLite sont que la base de données réelle est complètement autonome dans un seul fichier contrôlé par votre application, et qu'il prend en charge DDL standard SQL et commandes DML (c.-à-SELECT, INSERT, UPDATE, DELETE, CREATE DATABASE / TABLE etc).

Pour une application utilisateur unique SQLite est un excellent (un des meilleurs) façons de stocker les données d'application et les paramètres. De discsussion qu'il peut prendre en charge encore plus petite échelle des applications multi-utilisateurs.

Cependant Oracle, MySQL, etc applications SQL Server sont encore nettement plus pratique pour plusieurs utilisateurs (même des applications à petite échelle) si vous avez la possibilité d'accéder / utiliser un serveur de base de données.

En outre, ne pas oublier que le choix de la base de données ne sont pas mutuellement exclusives.

Vous pouvez avoir une application multi-utilisateur avec une interface utilisateur riche client installé sur de nombreux ordinateurs des utilisateurs. La base de données centrale ici devrait vraiment être un db multi-utilisateurs tels que MySQL. Mais dans l'interface utilisateur riche client, SQLite est idéal pour stocker chaque paramètres des utilisateurs, ou peut-être de fournir un soutien hors ligne quand ne peut pas être atteint la base de données.

Autres conseils

Biggy est celui que je l'ai utilisé dans le passé. Il enregistre en tant que JSON dans flatfiles et vous pouvez le trouver sur Github

formats de texte comme CSV , INI , XML peut être utilisé pour stocker des données structurées, mais l'OMI ne sont pas flexibles ou efficaces pour être utilisés comme bases de données.

Je recommande SQLite comme une excellente alternative. Il est un moteur de base de données très puissant, léger et autonome.

Vous pouvez avoir votre gâteau et le manger aussi:

SQLite est une base de données SQL qui consiste en un seul fichier et ne nécessite aucune installation, il a des liens pour de nombreuses langues et fonctionne dans différentes plates-formes.

Il n'y a pas besoin dans le cas que vous mentionnez d'écrire votre propre couche de données sur des fichiers plats. En fait, à moins que vous voulez un excercise d'apprentissage, je vous déconseille de le faire.

Il existe plusieurs bases de données embarquées disponibles que votre utilisateur ne sera pas à vous soucier du tout.

SqlLite est plate-forme commune, populaire, croix, etc. Cela dépend de votre langue de mise en œuvre. Si vous utilisez Java, il existe plusieurs, par exemple Derby. .NET est pas mon ballywick, mais j'imagine qu'il ya quelque chose là-bas. Au minimum, MS a un ordinateur de bureau librement utilisable, moteur intégrable SQL que vous pouvez utiliser.

La rédaction de votre propre peut être un exercice intéressant, mais que la roue a été fait, et il est tout simplement plus facile et plus efficace d'utiliser une base de données existante que commencer à partir de zéro. Vos utilisateurs ne seront pas touchés du tout par cela, si c'est le principal moteur, aucune raison de ne pas utiliser un produit disponible / projet.

Il est DBD :: CSV module Perl qui peut charger des fichiers csv et les interroger avec des instructions SQL. Mais pour votre objectif, je pense que vous seriez mieux enquêter sur SQLite qui est une base de données relationnelle appropriée qui fonctionne sans un serveur.

Au lieu de réinventer les bases de données, pourquoi ne pas regrouper votre application avec un simple moteur de base de données? Les bases de données se décline en plusieurs tailles, tous sont énormes: -)

Si vous ne voulez pas réinventer la roue, en regardant le code source des moteurs simples de base de données open source devrait vous indiquer la bonne direction.

Je suis d'accord avec les nombreux commentaires suggérant qu'il est préférable d'utiliser un moteur de base de données existante. Cependant, comme une tentative de répondre effectivement à la question:

  • Un format de base de données de fichier plat très commun est Xbase (généralement des fichiers avec des extensions .dbf). Vous pouvez google pour « xbase » et « DBF » et trouver beaucoup d'informations et un certain nombre de pilotes. Vous devriez être en mesure d'extraire un bon nombre de trucs et astuces si vous êtes vraiment intéressé.
  • Si vous voulez jouer avec celui qui est très probable sur votre système, vous pouvez utiliser l'ODBC « Microsoft Text Driver ». Si vous avez des trucs d'accès aux données Microsoft sur votre machine, vous avez probablement ce pilote. Je ne sais pas pour sûr, mais il est probablement installé avec MDAC. Ce pilote va lire et écrire des fichiers texte séparés par des virgules (entre autres formats).
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top