3

私は非常に大きなSQLiteデータベース(〜10MB)を持っています。現在、ローカルホストでカスタムPHPインターフェイスを使用してこのデータベースを使用していますが、別のストレージと別のインターフェイスも探しています。内部のデータはあまり頻繁に変更されないため、データの読み取りが優先されます。

データベーススキーマは「カスタム」であり、将来変更する必要がないため、現在の設定にはあまり満足していません(「より良い方法」が見つかる可能性があるため)。それは標準ではなく、将来私を悩ますかもしれないと思います。

私の質問は、非常に柔軟なデータを保存するための良い方法は何ですか?一度だけ満たす標準のデータストレージを探しています。SQLiteはまだ最良の選択ですか?

このデータベースの内容:

一般的に構造はどうですか。

  • 表Aには質問がたくさんあります。
  • 表Bは答えでいっぱいです。各質問には異なる答えがあります。
  • Cの表には、質問Yの回答Xに関するデータが満載です。各回答にはさまざまなメタデータがあります。

非常に重要なこと:

  • 高速クエリ;
  • 多くのソフトウェアをインストールすることなく、*NIXを介した移植性。
  • それほど複雑なクエリではありませんが、それでもいくつかの結合が必要になります。
  • 2か月ごとにスキーマを変更する必要はありません。

重要ではないこと:

  • 頻繁な更新(私はデータベースを年に1回、多かれ少なかれ更新します)。

ファイルやフォルダを使うことを考えましたが、それが最善かどうかはわかりません。

4

1 に答える 1

4

あなたの問題はグラフ問題としてうまくモデル化することができます。Orient DBやNeo4jのようなグラフベースのデータベースはどうですか?グラフの一部には2つのノードがあります。1つはAと言う質問用、もう1つはBと言う回答用で、それらを接続するエッジはテーブルcのデータまたはメタデータを持つことができます。各回答ノードは、複数の質問ノードからの複数の入力エッジを持つことができ、1つの質問に対して複数の回答が存在する可能性があります。スキーマは必要ありません。私が言及したデータベースはNoSQLデータベースです。Lucene Search Engineと統合して全文検索を行うことができるため、検索は非常に高速になります。Q&Aがあるので、全文検索が必要になると思います。

次に例を示します。 ここに画像の説明を入力してください

于 2012-06-14T10:13:00.767 に答える