Question

Je suis une application de transition en utilisant une base de données SQLite normale à un avec la recherche en texte intégral activé. Il a plusieurs colonnes de type BLOB qui stocke des choses comme les signatures numériques, qui ne nécessitent pas de toute évidence à indexer. J'ai lu que d'autres gens à résoudre en déplaçant toutes les données non-texte à une procédure distincte, table non FTS3 qu'ils se joignent à la intérieure tableau FTS3 si nécessaire, mais cela est une solution très inélégante. Yat-il pas possible de simplement exclure certaines colonnes de l'indexation?

Était-ce utile?

La solution

Il est pas inélégant. SQL est relationnelle, les jointures sont une partie naturelle de la vie. ils penser que vous êtes « inélégant » est ce qui conduit à des conceptions de base de données Stéréotype pauvres.

Vous avez déterminé que vous avez deux types de données différentes - texte que vous avez souvent besoin de rechercher, et vous ne le faites pas blobs. Il n'y a absolument rien de mal ou de inélégante sur le stockage dans ces deux tableaux différents.

Autres conseils

Vous pouvez le rendre moins de tracas en créant une vue sur la jointure que vous pouvez sélectionner plus. Vous pouvez toujours utiliser MATCH sur les colonnes qui a pris naissance dans le tableau fts, et vous ne devez pas faire se joindre à chaque fois que vous voulez interroger.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top