これは、単なるコーディングの質問ではなく、設計上の質問です。
SQLiteDBテーブルにデータを保存するアプリをすでに持っています。これに検索機能を追加したいと思います。
検索機能を有効にするには、FTSテーブルが必要であることを理解しています。
私が持っているテーブルは(完全に同じではありませんが、非常によく似た例を示しています):
コンテンツテーブル-Id、Title、Content、Created By、Created On、Changed By、Changedonなどの列があります...
コメントテーブル-Id、Comments、Created By、Created On、InReplytoなどの列があります...
ユーザーデータ、メタデータ、カテゴリ、タグなどの他のテーブル。
ここでは、タイトル、コンテンツ、コメントの検索機能のみが必要です。明らかに、などによって作成されたような他の列の検索機能は必要ありません。
どちらが最良のオプションですか?
- 古いテーブルを破棄してFTSテーブルのみを作成する必要がありますか?
- 古いテーブルを引き続き使用して、検索機能のみをサポートする新しいFTSテーブルを作成する必要があります。
オプション1で見られる問題は次のとおりです。
- それは破壊的な変化です!
- 検索を実行する予定のない多くの非テキスト列を持つ複数のテーブルのセットがあります。FTSでそれらをモデル化するにはどうすればよいですか?
- 現在、JoinなどのRDBMSの機能を利用していますが、FTSテーブルに完全に切り替えると実行できなくなると思います。
オプション2で見られる問題は次のとおりです。
- その結果、テーブルが重複し、より多くのメモリ/スペースを消費します!
- SQLテーブルのエントリを挿入/更新/変更するたびに、FTSテーブルで同じ変更を行う必要があります。
それで、最良のオプションは何ですか?同様の課題に直面した体はありますか?