Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Внешний ключ на UNIQUE-поле (Влад) 11/01/2015 - 15:44:54
      Re: Внешний ключ на UNIQUE-поле (Akina) 12/01/2015 - 15:51:02

> Original message text:
> From: Влад - 11/01/2015 - 15:44:54
> Subject:Внешний ключ на UNIQUE-поле
> -----------------
> Доброго времени суток. Проблема, скорее всего, с указанием внешнего ключа на уникальное поле, не первичный ключ.
> Есть 2 таблицы:
>
> --
> -- Структура таблицы `users`. Создается, все нормально
> --
>
> CREATE TABLE IF NOT EXISTS `users` (
> `id_user` int(11) NOT NULL AUTO_INCREMENT,
> `username` varchar(16) DEFAULT NULL,
> `password` int(32) DEFAULT NULL,
> `user_email` varchar(32) DEFAULT NULL,
> `image` mediumblob,
> PRIMARY KEY (`id_user`),
> UNIQUE KEY `image` (`image`(255)) --проходит, все нормально создается
> )
>
> --
> -- Структура таблицы `comments`. Эта не создается
> --
>
> CREATE TABLE IF NOT EXISTS `comments` (
> `id_comment` int(11) NOT NULL AUTO_INCREMENT,
> `comment` text DEFAULT NULL,
> `image` mediumblob,
> `email_id` int(11),
> PRIMARY KEY (`id_comment`),
> FOREIGN KEY (`image`(255)) REFERENCE users(`image`), -- указывает не на foreign, а на unique
> FOREIGN KEY (`email_id`) REFERENCE emails(`id_email`)
> )
> [/SRC]
>
> У одного пользователя одно изображение, у изображения много комментариев. Есть еще таблица emails, но это отдельная история, вся предметная область, если интересно, описана в приложенном файле.
> https://yadi.sk/i/2kCF2xe5dtJH7
>
> #1005 - Can't create table 'general_db.comments' (errno: 150)
>
> P.S. Про опечатку "imahes" я знаю, учёл
>


From: Akina - 12/01/2015 - 15:51:02
Subject:Внешний ключ на UNIQUE-поле
-----------------
> У одного пользователя одно изображение, у изображения много комментариев.

Вы определитесь, является изображение сущностью или атрибутом сущности пользователь.

В первом случае выносите его в отдельную таблицу и референсите на неё.

Во втором случае референсите не на изображение, а на пользователя.

А вообще, по-моему, хранить копию изображения к каждому комментарию - не очень умно...


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
43303



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |