Является ли хранение текста в формате URL в базе данных хорошей идеей? - PullRequest
2 голосов
/ 15 июля 2009

Мне нужно хранить (возможно длинный) текст в базе данных MySQL. Текст может содержать специальные символы и нелатинские буквы, и для него должна быть предусмотрена возможность полнотекстового поиска. MySQL 5 не может хранить такие символы (но это будет возможно в MySQL 6), поэтому я подумал о кодировании URL-адреса текста перед его сохранением и декодировании после извлечения. Как вы думаете, это хорошая идея? Кто-нибудь делал что-то подобное? У вас есть альтернативные решения?

Ответы [ 3 ]

1 голос
/ 15 июля 2009

Почему бы не использовать Unicode, закодированный с UTF8 - MySQL 5 поддерживает его

0 голосов
/ 15 июля 2009

Полнотекстовый поиск MySQL в Юникоде достаточно умен, чтобы искать связанные символы, такие как «á» и «ä» при поиске «a». Поэтому я не буду хранить кодированный в URL текст, а буду использовать параметры MySQL.

0 голосов
/ 15 июля 2009

Неплохая идея.

Вместо того, чтобы (только) декодировать после выборки, вы должны также запланировать процесс, чтобы url-кодировать любые поисковые термины до построения поискового запроса. Если ваша логика на стороне приложения имеет функции использования, которые фильтруют все данные в процессе кодирования / декодирования, то вы не должны проскальзывать через ошибки.

Кроме того, возможно ли, что тип данных VARBINARY может избежать этой проблемы? (Я мог бы погуглить эту часть, но уже поздно, и я засыпаю. Просто помогаю мозговому штурму перед сном.)

...