Если это поле tags
означает то, что я думаю, то есть, то есть вы планируете хранить строку, которая объединяет несколько тегов для элемента, тогда вам может потребоваться полнотекстовый поиск по нему ... но это плохой дизайн; скорее, у вас должно быть отношение «многие-многие» между элементами и таблицей тегов (в другой таблице, ItemTag или чем-то еще, с двумя внешними ключами, которые являются первичными ключами таблицы элементов и таблицы тегов).
Я не могу сказать, нужен ли вам полнотекстовый поиск на description
, так как у меня нет никаких сведений о том, что это такое, или вам нужен разумный, но несколько элементарный полнотекстовый поиск, который предоставляют MySQL 5.1 и PostgreSQL 8.3 или более мощный, например, в sphinx ... может быть, поговорим немного больше о контексте вашего приложения и почему вы рассматриваете полнотекстовый поиск?
Редактировать: так что, похоже, единственная возможная потребность в полнотекстовом поиске может быть на description
, и похоже, что он достаточно ограничен, чтобы либо MySQL 5.1, либо PostgreSQL 8.3 хорошо его обслуживали. У меня есть приятное место для PostgreSQL (хотя я тоже достаточно опытен в MySQL), но это общее предпочтение, не связанное конкретно с проблемами полнотекстового поиска. Этот блог предоставляет одну причину, чтобы предпочесть PostgreSQL: вы можете осуществлять полнотекстовый поиск и при этом выполнять транзакции, тогда как в MySQL полнотекстовая индексация работает только с таблицами MyISAM, а не с InnoDB [[за исключением случаев, когда вы добавляете sphinx , конечно]] (также см. это продолжение , чтобы узнать больше о полнотекстовом поиске в PostgreSQL и Lucene). Тем не менее, есть, конечно, другие соображения, связанные с выбором БД, и я не думаю, что вы будете делать ужасно с любым из них (если только добавление sphinx для полнотекстовых транзакций и транзакций не является большой проблемой).