Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2010, 14:48   #1
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость Розобраться со структурой [MySQL]

Доброго времени суток!
Суть такова: есть 2 таблици:
images
Поля: img_id, img_link_sm, img_link_bg
(img_id PK)

comments
Поля: img_id, com_id, com_text, com_date
(com_id PK)

Как сделать img_id во второй таблице FK?
И вообще это норм когда во второй таблице com_id ключ(значения не могут повторяться), ибо нельзя начинать счет коментов от 1 для разных img_id...



1)Или вообще не нужно начинать счет с 1 в com_id для разных img_id ?
2)И зачем вообще в данном случае ФК по img_id ?

Последний раз редактировалось Lemo; 16.10.2010 в 14:59.
Lemo вне форума Ответить с цитированием
Старый 16.10.2010, 15:13   #2
xDyPx
Форумчанин
 
Аватар для xDyPx
 
Регистрация: 21.01.2009
Сообщений: 148
По умолчанию

Ключ - это уникальный идентификатор записи в таблице. Он не может повторяться. Поэтому Во второй таблице лучше сделай ключом - com_id и поставь ему автоувеличение, чтобы каждый коммент имел свой id.
И когда нужно вывести комменты для, допустим, первой картинки, то запрос делай:
Код:
SELECT * FROM comments WHERE img_id=1 ORDER BY com_date desc
МОЙ САЙТ
Компьютер позволяет решать все те проблемы, которые до появления компьютера не существовали.
xDyPx вне форума Ответить с цитированием
Старый 16.10.2010, 16:00   #3
Prividenie
 
Регистрация: 08.10.2008
Сообщений: 9
По умолчанию

xDyPx
во второй таблице (comments) и так указано (com_id РК) снизу.

Lemo
связь по img_id - для того чтобы для одной картинки может быть несколько комментариев .
(не трогайте поле com_id это ваш первичный ключ)

примерный код таблиц со внешним ключем (show create table):
Код:
CREATE TABLE `images` (
  `img_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `img_link_sm` varchar(50) DEFAULT NULL,
  `img_link_bg` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`img_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Код:
CREATE TABLE `comments` (
  `img_id` int(10) unsigned NOT NULL,
  `com_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `com_text` varchar(50) DEFAULT NULL,
  `com_date` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`com_id`),
  KEY `img_id` (`img_id`),
  CONSTRAINT `comments_ibfk_1` FOREIGN KEY (`img_id`) REFERENCES `images` (`img_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Prividenie вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема со структурой в Си. danik93 Помощь студентам 2 17.08.2010 15:49
файл со структурой klykovka Общие вопросы C/C++ 0 29.05.2010 20:44
Трудность со структурой prosto_i Microsoft Office Access 4 11.03.2010 23:11
C++. Задание со структурой maloy-rom Помощь студентам 2 15.05.2009 14:14
проблема со структурой Petruha-nsk Общие вопросы C/C++ 1 18.04.2009 21:12