2015-02-27 6 views
0

У меня есть таблица под названием users со следующими столбцами:Магазин динамический число записей в одной таблице в одной строке в другой таблице

| id | name | 

Тогда еще одна таблица под названием images который выглядит следующим образом:

| id | fileName | 

Каков наилучший способ назначить динамическое число строк изображения для нескольких рядов пользователей.

ответ

0

Вам необходимо добавить foreign key в список: Например, изменить таблицу изображения на три колонки:

| id | fileName | userID | 

Этот идентификатор пользователя должен быть одним из значений идентификаторов, которые уже существуют в таблице пользователей, в противном случае этот столбец будет бессмысленным. Этот столбец указывает на таблицу пользователей и по существу присваивает каждому изображению конкретный пользователь. Поскольку один пользователь может иметь много картин, мы называем это отношением «один ко многим».

Если вы уже создали таблицы, вы можете попытаться выполнить следующий запрос:

ALTER TABLE images ADD userID INT NOT NULL DEFAULT 0; 
ALTER TABLE images ADD CONSTRAINT fk_user FOREIGN KEY (userID) REFERENCES users(id); 

Первая строка будет добавить столбец, в то время как вторая линия делает ограничение для него. Ограничение гарантирует, что новые строки, добавленные в таблицу изображений , ДОЛЖНЫ, имеют действительный идентификатор пользователя. Если вы попытаетесь добавить строку с идентификатором пользователя, который не существует, вы получите сообщение об ошибке (и это правильно, потому что изображения не должны принадлежать воображаемым пользователям).

Это также установит столбец userID всех существующих строк изображений на 0. Возможно, вы захотите изменить это позже, но это зависит от вашего индивидуального случая.

+0

Got it. Благодаря! –

Смежные вопросы