Я использую схему Toxi для пометки предметов на моем сайте.Будучи новичком в MySQL, не говоря уже о тегах, я просто проверяю работоспособность.Вот мой скрипт инициализации таблицы.
CREATE TABLE IF NOT EXISTS Items (
item_id INT UNSIGNED NOT NULL AUTO_INCREMENT ,
item_name VARCHAR(45) NULL ,
media_type VARCHAR(20) NULL ,
file VARCHAR(45) NULL ,
description VARCHAR(500) NULL ,
PRIMARY KEY (item_id)
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS Tags (
tag_id INT UNSIGNED NOT NULL AUTO_INCREMENT ,
tag_text VARCHAR(25) NOT NULL ,
PRIMARY KEY (tag_id) ,
UNIQUE INDEX (tag_text)
) ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS Item2Tag (
item_id INT UNSIGNED NOT NULL ,
tag_id INT UNSIGNED NOT NULL ,
PRIMARY KEY (item_id, tag_id) ,
INDEX (tag_id) ,
FOREIGN KEY fk_Item (item_id) REFERENCES Items (item_id) ,
FOREIGN KEY fk_Tag (tag_id) REFERENCES Tags (tag_id)
) ENGINE=InnoDB;
http://forge.mysql.com/wiki/TagSchema
Вопрос 1
Правильно ли я понимаю, что в таблице "Item2Tag" есть запись для каждые"item_id" до "tag_id"?Похоже, это будет огромная таблица, когда у меня будет ~ 3000 предметов, и каждый предмет может иметь ~ 5 тегов.Разве это не проблема / не очень большой стол?
Вопрос 2
Может ли кто-нибудь помочь мне понять важность наличия иностранных ключей / ссылок?Зачем мне это нужно и что они делают?