Вот моя проблема:
Я хочу создать отношения между двумя элементами одного типа.
По сути, у меня есть таблица 'tag', и я хочу установить отношения между тегами.
Я создал таблицу 'tag_relations'.В этой таблице каждая строка будет представлять одно отношение.Он будет состоять из 2 атрибутов: tag_id (который является идентификатором тега, связанного с отношением) и отношения (который является идентификатором тега, связанного с первым тегом, представленным тегом tag_id).
Iустановите первичный ключ моей таблицы tag_relations в качестве пары этих двух атрибутов.
Вот как я создал свою таблицу:
CREATE TABLE `tag_relation` (
`tag_id` int(11) NOT NULL,
`relation` int(11) NOT NULL,
PRIMARY KEY (`tag_id`,`relation`),
KEY `relation` (`relation`),
CONSTRAINT `tag_relation_ibfk_1` FOREIGN KEY (`tag_id`) REFERENCES `tag` (`id`),
CONSTRAINT `tag_relation_ibfk_2` FOREIGN KEY (`relation`) REFERENCES `tag` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Мой вопрос: как я могу убедиться,, если у меня уже есть пара (1,2) в моей таблице (поэтому тег 1 связан с тегом 2), я не смогу вставить пару (2,1) (поскольку это отношение уже существует неявно).
Я вынужден создать триггер?
Заранее спасибо