FTS3を有効にしてSQLiteテーブルにバイナリデータを保存する方法は?
質問
通常のSQLiteデータベースを使用することから、フルテキスト検索が有効になっているアプリケーションにアプリケーションを移行しています。デジタル署名のようなものを保存するいくつかのBlob列があり、明らかにインデックスを作成する必要はありません。他の人は、必要に応じてFTS3テーブルと内部が結合する別の非FTS3テーブルにすべての非テキストデータを移動することでこれを解決することを読みましたが、これは非常に不可能なソリューションです。インデックスから特定の列を単に除外する方法はありませんか?
解決
それは不可分ではありません。 SQLはリレーショナルであり、結合は人生の自然な部分です。それらが「不可分」だと考えることは、ステレオタイプのデータベースデザインにつながるものです。
2種類のデータがあると判断しました。検索する必要があるテキストと、しない塊です。これらを2つの異なるテーブルに保存することについて、何も悪いことではありません。
他のヒント
選択できる結合のビューを作成することで、それをあまり手間をかけることができます。 FTSテーブルに由来する列でマッチを使用することもできます。また、クエリをするたびに参加する必要はありません。
所属していません StackOverflow