フラットファイルデータベースの例
-
19-09-2019 - |
質問
単純なフラットファイルデータベースの例と、データレイヤーを介してどのようにアクセスするかをいくつか見たいです。以前にフラットファイルに書き込み、読み取りましたが、テキストファイルを使用してアプリケーションのデータにアクセスするデータレイヤーを作成したことはありません。
可能であれば、シンプルでカスタムフラットファイルデータベースを使用したデータレイヤーを備えたチュートリアルを見るといいでしょう。 XMLが非常に人気があり、簡単に作業しやすいため、XMLにカスタムビジネスオブジェクトを保存してアップロードする例はいいでしょう。
また、フラットファイルデータベースなどのデザインに関するベストプラクティスを議論するWebサイトへのリンクにも感謝します。
私の目標は、ユーザーのマシンに簡単なデータを保存するためのソリューションを用意し、保存されている場所からデータを取得するために、特別なソフトウェア(SQL Serverなど)をインストールする必要はないことです。
私はこれが非常に一般的な質問であることを知っていますが、正しい方向に私を向けることができるアドバイスは歓迎されます。
解決
今日の周りには多数の同様のテクノロジーのために、あなたの定義が少し混ざり合っているかもしれません。
XMLはそうではありません フラットファイル形式 (またはフラットファイルデータベース)が、目標を読むことから、実際に必要なのは、実際のフラットファイルではなく、自己抑制されたリレーショナルデータベースです。
他の人と同様に、この目的のためにSQLiteを強くお勧めできます。さまざまなプラットフォームにはバインディングがあります system.data.sqlite これは、1つのファイルに、データベースプロバイダーとエンジンの両方です。
SQLiteを使用することの2つの大きな利点は、実際のデータベースがアプリケーションによって制御された単一のファイルに完全に自己封じ込められており、標準のSQL DDLおよびDMLコマンド(IE Select、挿入、更新、削除、データベース/テーブルなどをサポートすることです。 )。
単一のユーザーアプリケーションの場合、SQLiteは、アプリケーションデータと設定の両方を保存する優れた(最良の)方法です。そこに最近 開示されています 小規模なマルチユーザーアプリケーションをサポートできること。
ただし、Database Serverにアクセス/利用する機能がある場合、Oracle、MySQL、SQL Serverなどは、マルチユーザーアプリケーション(小規模アプリケーションでも)よりも間違いなく推奨されます。
また、データベースの選択は相互に排他的ではないことを忘れないでください。
多くのユーザーコンピューターにリッチクライアントUIがインストールされているマルチユーザーアプリケーションがある場合があります。ここの中央データベースは、mysqlなどのマルチユーザーDBである必要があります。しかし、リッチクライアントUI内では、SQLiteは各ユーザーの設定を保存するか、データベースに到達できない場合にオフラインサポートを提供するのに理想的です。
他のヒント
ビギー 私が過去に使用したものです。それはフラットファイルでjsonとして保存され、あなたはそれをgithubで見つけることができます
あなたはあなたのケーキを持ってそれを食べることができます:
sqlite 単一のファイルで構成され、インストールを必要としないSQLデータベースであり、多くの言語のバインディングがあり、さまざまなプラットフォームで実行されます。
フラットファイルの上に独自のデータレイヤーを書くことに言及する場合は、必要はありません。実際、学習の運動が必要な場合を除き、私はそれをすることに反対することをお勧めします。
ユーザーがまったく心配する必要がないいくつかの埋め込みデータベースが利用可能です。
SQLLITEは一般的で人気のあるクロスプラットフォームなどです。実装言語に依存します。 Javaを使用する場合、たとえばダービーがいくつかあります。 .netは私のバリーウィックではありませんが、そこに何かがあると思います。少なくとも、MSには、使用できる自由に使用可能なデスクトップ、埋め込み可能なSQLエンジンがあります。
自分で書くことは興味深いエクササイズですが、そのホイールは行われており、ゼロから開始するよりも既存のデータベースを使用する方が簡単で効率的です。ユーザーはこれによってまったく影響を受けることはありません。そのため、それが主要なドライバーである場合、利用可能な製品/プロジェクトを使用しない理由はありません。
そこには DBD :: CSV PERLのモジュールでは、CSVファイルをロードしてSQLステートメントで照会できます。しかし、あなたの目標のために、私はあなたが調査したほうがよいと思います sqlite これは、サーバーなしで実行される適切なリレーショナルデータベースです。
データベースを再発明するのではなく、単純なデータベースエンジンでアプリケーションをバンドルしてみませんか?データベースにはさまざまなサイズがありますが、すべてが巨大ではありません:-)
ホイールを再発明したい場合は、単純なオープンソースデータベースエンジンのソースコードを見ると、正しい方向に向けられます。
既存のデータベースエンジンを使用する方が良いことを示唆する多くのコメントに同意します。しかし、実際に質問に答える試みとして:
- 非常に一般的なフラットファイルデータベース形式はXBaseです(通常は.DBF拡張機能を備えたファイル)。 「XBase」と「DBF」をグーグルで検索して、多くの情報と任意の数のドライバーを見つけることができます。本当に興味があれば、かなりの数のヒントやヒントを抽出できるはずです。
- システム上で非常に可能性のあるもので遊びたい場合は、ODBC「Microsoft Text Driver」を使用できます。マシンにMicrosoft Data Accessのものがある場合は、そのドライバーがいる可能性があります。確かにわかりませんが、おそらくMDACでインストールされています。そのドライバーは、コンマ分離テキストファイル(他の形式の中でも)を読み書きします。