Интересно, есть ли лучшая практика или какой-либо принцип при разработке таблицы поиска.
Я намереваюсь разработать абстрактную таблицу поиска, которая может обслуживать множество различных ситуаций.
Например, я называю свою справочную таблицу как masters and slaves
таблицу,
CREATE TABLE IF NOT EXISTS `masters_slaves` (
`mns_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`master_id` varchar(255) DEFAULT NULL COMMENT 'user id or page id',
`slave_id` varchar(255) DEFAULT NULL COMMENT 'member id or user id or page id',
`cat_id` varchar(255) DEFAULT NULL COMMENT 'category id',
`mns_created` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`mns_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`mns_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
, поэтому эта справочная таблица может обслуживать отношения этих типов, например,
Admins and Members
Admins and Pages
Admins and Posts
Post Categories and Posts
Page Parents and Pages
etc
cat_id
в masters and slaves
таблица опишет и дифференцирует эти категории.например, cat_id
1
- это Администраторы и члены и т. д.
И я вставлю:
- идентификатор администратора в столбец
master_id
и идентификатор участника в slave_id
столбце - идентификатор родительской страницы в столбце
master_id
и идентификатор дочерней страницы в slave_id
столбце - идентификатор категории публикации в столбце
master_id
и идентификатор страницы в slave_id
столбце - и т. д.
Но я уверен в этом, должен ли я пойти на это или нет:
- ЕстьЭто хорошая практика для таблиц поиска, или многие должны создавать более одной таблицы поиска для разных отношений?
- Если я могу сделать таблицу поиска подобной этой, которая является всего лишь одной таблицей поиска для всех, какие последствия у меня будутв будущем?Будет ли эта единственная таблица поиска переполнена, когда содержание моего сайта будет увеличиваться?
- Еще одна вещь, которая приходит на ум, - не является ли система тегов решением для таблицы поиска?
Благодаря.