Я перехожу к приложению, используя обычную базу данных SQLite, с поддержкой полнотекстового поиска. Он имеет несколько столбцов BLOB, которые хранят такие вещи, как цифровые подписи, которые, очевидно, не нужно индексировать. Я читал, что другие люди решают эту проблему, перемещая все данные, отличные от TEXT, в отдельную таблицу, отличную от FTS3, которая, если необходимо, внутренне соединяется с таблицей FTS3, но это очень неэлегантное решение. Нет ли способа просто исключить некоторые индексы из индексации?Как хранить двоичные данные в таблицах SQLite с включенным FTS3?
2
A
ответ
0
Это не неэлегантно. SQL является реляционным, объединение является естественной частью жизни. Думая, что они «неэлегантные» - это то, что приводит к стереотипно-белым проектам баз данных.
Вы определили, что у вас есть два разных типа данных - текст, который вам часто нужно искать, а капли - нет. Абсолютно ничего плохого или нецелесообразно хранить в двух разных таблицах.
0
Вы можете сделать это менее хлопот, создав представление о соединении, которое вы затем можете выбрать. Вы все равно можете использовать MATCH в столбцах, которые возникли в таблице fts, и вам не нужно делать это соединение каждый раз, когда вы хотите запросить.
Смежные вопросы
- 1. Невозможно хранить двоичные данные в sqlite с использованием QT
- 2. Как использовать FTS3 в SQLite
- 3. хранить двоичные данные mysql
- 4. Хранить данные в разных таблицах
- 5. Как хранить двоичные данные в MySQL
- 6. Альтернативы Python SQLite FTS3?
- 7. Sqlite FTS3 MATCH OR
- 8. sqlite-fts3: пользовательский токенизатор?
- 9. SQLite FTS3 несовместимая производительность
- 10. FTS3 SQLite database query's
- 11. Как должен ISerializable объект хранить двоичные данные?
- 12. Как хранить файлы в sqlite
- 13. Как избежать символа - в запросах SQLite FTS3?
- 14. SQLite rename fts3 rowid column
- 15. SQLite FTS3 имитирует LIKE somestring%
- 16. Хранить огромные данные в SQLite
- 17. Как получать и хранить двоичные данные с сервера в iOS?
- 18. Как хранить двоичные данные в mysql с помощью vb.net?
- 19. Как хранить двоичные данные в «Динамо» с помощью boto?
- 20. Использование SQLite FTS3/4 с Python 3
- 21. Поиск в виртуальной таблице (FTS3) в sqlite
- 22. Как хранить данные Json в Sqlite?
- 23. Как напрямую хранить данные SQLite в XCode?
- 24. Как хранить разобранные данные JSON в SQLite
- 25. Как хранить данные json в sqlite
- 26. где китайский токенизатор в SQLite FTS3?
- 27. SQLite fts3: поиск строки в столбце
- 28. Как выполнить запрос в таблице sqlite fts3 с помощью «- *»?
- 29. Как вы сопоставляете несколько столбцов в таблице с SQLite FTS3?
- 30. Двоичные данные в MySQL
Я называю это неэлегантным, потому что обычные таблицы позволяют сосуществовать с данными разных типов, не поддерживая разные таблицы, которые вы должны постоянно синхронизировать друг с другом. Это просто не изящно. Вероятно, мне придется полностью реорганизовать мое приложение. Или, по крайней мере, так я беру это от чтения вашего ответа. – 2010-11-14 05:26:45
@oskar: Если вам нужно полностью переустановить приложение, чтобы изменить макет базы данных, вы используете базу данных _very_ неправильно. Разделение нескольких столбцов на отдельную таблицу является чрезвычайно распространенной задачей и должно быть быстрым и безболезненным изменением в любом хорошо разработанном приложении. –
Мне нужно перестроить его в том смысле, что каждый оператор SELECT, который я сейчас должен изменить, должен быть изменен, чтобы включить соединение в другую таблицу, каждый INSERT должен быть изменен для вставки в две отдельные таблицы, и каждый DELETE должен быть изменено для удаления из двух разных таблиц. – 2010-11-14 05:40:01