GHopper
Новичок
FULLTEXT or FOREIGN KEY
Здравствуйте!
БД mysql5. Разрабатываю структуру для сайта новостей.
Таблица news - новости, counters - счетчик просмотров новостей. Все хорошо, только вот в таблице news мне очень хочется использовать полтотекстный поиск. Для этого мне нужно эту таблицу преобразовать в MyISAM, но это нарушит правило для внешних ключей - все табилци должны быть INNODB!
Как решить мою проблему?
Если-же FULLTEXT`у существовать в такой структуре БД не дано, то как его заменить? Как организовать поиск с учетом релевантности без FULLTEXT? Какова потеря в скорости rlike по сравнению с FULLTEXT?
Может все-таки целесообразней для моих нужд все-таки заменить FK на триггеры и уйти к MyISAM и FULLTEXT? Но в документации описание InnoDB Storage Engine мне понравилось больше, чем MyISAM...
Здравствуйте!
БД mysql5. Разрабатываю структуру для сайта новостей.
PHP:
DROP TABLE IF EXISTS `news`;
DROP TABLE IF EXISTS `counters`;
CREATE TABLE `counters` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`news_id` INT UNSIGNED NOT NULL,
`cnt_day` INT UNSIGNED DEFAULT 0,
`cnt_month` INT UNSIGNED DEFAULT 0,
`cnt_all` INT UNSIGNED DEFAULT 0,
PRIMARY KEY (`id`),
CONSTRAINT `counter_fk` FOREIGN KEY (news_id) REFERENCES news(id) ON DELETE CASCADE
) ENGINE=INNODB;
CREATE TABLE `news` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`header` VARCHAR(500),
`subheader` VARCHAR(500),
`leed` TINYTEXT,
`text` TEXT NOT NULL,
`src_name` VARCHAR(256),
`src_url` VARCHAR(256),
`ya_title` VARCHAR(500),
`dt` TIMESTAMP,
`ready` BOOL DEFAULT FALSE,
`cat_id` INT UNSIGNED NOT NULL,
`user_id` INT UNSIGNED NOT NULL,
`city_id` INT UNSIGNED,
/*FULLTEXT (header,subheader,leed,text),*/
PRIMARY KEY (`id`),
CONSTRAINT `cat_fk` FOREIGN KEY (cat_id) REFERENCES cat(id),
CONSTRAINT `user_fk` FOREIGN KEY (user_id) REFERENCES user(id),
CONSTRAINT `city_fk` FOREIGN KEY (city_id) REFERENCES city(id)
) ENGINE=INNODB;
Как решить мою проблему?
Если-же FULLTEXT`у существовать в такой структуре БД не дано, то как его заменить? Как организовать поиск с учетом релевантности без FULLTEXT? Какова потеря в скорости rlike по сравнению с FULLTEXT?
Может все-таки целесообразней для моих нужд все-таки заменить FK на триггеры и уйти к MyISAM и FULLTEXT? Но в документации описание InnoDB Storage Engine мне понравилось больше, чем MyISAM...