что значит какое поле использовать???
Если ты задаешь вопрос о построении внешнего ключа, то тебе виднее какие поля ты хочешь использовать?
Кто тебе мешает ссылаться на поле объявленное первичным ключем?
что означает такая ошибка:
Cannot add or update a child row: a foreign key constraint fails
пишет после попытке вставить запись в таблицу...
структура таблицы:
CREATE TABLE thread (
threadid int(4) unsigned NOT NULL auto_increment,
name char(64) default NULL,
down int(4) unsigned NOT NULL,
up int(4) unsigned default NULL,
PRIMARY KEY (threadid),
FOREIGN KEY (threadid) REFERENCES db00079170_5.thread (threadid) ON DELETE CASCADE
) TYPE=InnoDB;
ну не знаю =), ты же и писала, что никто не мешает мне ссылаться на первичный ключ...
а глубокий смысл, что эта таблица представляет собой древовидную структуру, и при удалении записей, скажем, из узла, все дочерние удалились бы автоматически...
это из алгоритма вложенных множеств структура таблицы (только там вместо down и up используется left и right соответственно)...
а на счет ссылочности вот я и не знаю какое поле сделать внешним ключем... так чтоб при удалении одной записи - все зависящие от нее были бы удалены тоже
По стандарту unique, но MySQL этого не требует, надо просто создать индекс на это поле.
Просто если у тебя само поле уникальное, и ты создаешь внешний ключ ссылающийся на это же самое поле - то смысла в этом маловато.