[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Организация связей в MySQL
CJ_Junyor
У меня вопрос, какое нужно организовывать взаимодействие с таблицами в базе при использовании первичного ключа и внешнего ключа?

Ну к примеру, есть две небольших таблички (users,logs):
users
user_id (PK)
user_login
user_pass
user_name
log_id (FK)

и таблица logs, которая содержит количество неудачных попыток и IP
logs
log_id (PK)
log_ip
log_count

Ну связали мы их при помощи внешнего ключа, а дальше что ... как нужно дальше к ним обращаться?

На каком уровне происходит связывание?
Мне все равно прийдется вручную задавать значение log_id в таблице users или же связывание подразумевает то, что при добавлении в таблицу logs данных они автоматически привязываются к соответствующей записи из таблицы users?

Вообщем, разъясните плиз...



Спустя 57 минут, 51 секунда (6.10.2009 - 00:40) kirik написал(а):
Немного не так..
users
user_id (PK)
user_login
user_pass
user_name

logs
log_id (PK)
user_id
log_ip
log_count

По user_id таблицы связываются. Добавлять данные в logs ты должен конечно сам.

А зачем тебе такая штука? Неудачные попытки какого действия ты хочешь записывать?

Спустя 7 часов, 36 минут, 54 секунды (6.10.2009 - 08:17) Michael написал(а):
Цитата (CJ_Junyor @ 5.10.2009 - 20:42)
Ну связали мы их при помощи внешнего ключа, а дальше что ... как нужно дальше к ним обращаться?
На каком уровне происходит связывание?

Задал связь с помощью FOREIGN KEY.
Обращаешся с табличками так как и раньше, только:
1) в табличку где определен ВК не сможешь добавить "неопределенное"
значение ВК, а только то которое существует в "главной" табличке
(выдаст ошибку, что очень хорошо)
2) при удалении значения ВК из "главной таблички", ссылаемые на него
значения оказываются несвязанными и можно в структуре БД определить
например их удаление, или в NULL

Это ограничение целостности БД - очень хорошая вещь.

Спустя 2 часа, 26 минут, 43 секунды (6.10.2009 - 10:44) glock18 написал(а):
Цитата
Задал связь с помощью FOREIGN KEY.
Обращаешся с табличками так как и раньше, только:
1) в табличку где определен ВК не сможешь добавить "неопределенное"
значение ВК, а только то которое существует в "главной" табличке
(выдаст ошибку, что очень хорошо)
2) при удалении значения ВК из "главной таблички", ссылаемые на него
значения оказываются несвязанными и можно в структуре БД определить
например их удаление, или в NULL


вообще говоря, это поведение настраивается. можно чтобы ругалось, можно чтобы не ругалось. Можно чтобы удалялось, можно чтобы не удалялось...

Спустя 20 минут, 43 секунды (6.10.2009 - 11:04) Michael написал(а):
Цитата (glock18 @ 6.10.2009 - 07:44)
можно чтобы ругалось, можно чтобы не ругалось. Можно чтобы удалялось, можно чтобы не удалялось...

А можно, чтобы снежками кидалось? smile.gif

Спустя 16 минут, 36 секунд (6.10.2009 - 11:21) glock18 написал(а):
Цитата
А можно, чтобы снежками кидалось?

можно, наверно. только я так круто пока еще не научился smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.