Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Foreign Key со множеством занчений (MySQL)

501
31 марта 2006 года
hell_admin
110 / / 02.10.2004
Здрасте, вопрос такой:
Есть таблица в одном из полей которой может содержаться список чисел
например таблица фирмы,\
где есть поле сертификаты, а есть таблица сертификаты.

так вот в этом поле сертификаты в таблице фирма может быть список имеющихся сертификатов.
Например 1,2,5 какой тип поля надо бырать?

Я думал SET но там на этапе создание необходимо указать набор значений, а их может быть очеень много.

Небольшая схемка
 
Код:
firms                      serts
-----------------          -----------
Name            |      ->  | id (PK) |
-----------------     /    -----------
.....           |    /     | sert    |
-----------------   /      -----------
sertificates(FK)|_ /
-----------------
.......         |
__________________

спасибо за ответы.
385
05 апреля 2006 года
SomewherSomehow
477 / / 25.07.2004
Цитата:
Originally posted by hell_admin
Здрасте, вопрос такой:
Есть таблица в одном из полей которой может содержаться список чисел
например таблица фирмы,\
где есть поле сертификаты, а есть таблица сертификаты.

так вот в этом поле сертификаты в таблице фирма может быть список имеющихся сертификатов.
Например 1,2,5 какой тип поля надо бырать?

Я думал SET но там на этапе создание необходимо указать набор значений, а их может быть очеень много.

Небольшая схемка
 
Код:
firms                      serts
-----------------          -----------
Name            |      ->  | id (PK) |
-----------------     /    -----------
.....           |    /     | sert    |
-----------------   /      -----------
sertificates(FK)|_ /
-----------------
.......         |
__________________

спасибо за ответы.


А КАК ЭТО ТАК?! Вы знакомы со спецификацией языка SQL? В таких случаях обычно делается так (на этом примере), в таблицу serts добавляется поле firmsID, т.е. PK таблицы firms и соответсвенно привязыается к таблице firms, отношение один ко многим. Других способов нет.

501
06 апреля 2006 года
hell_admin
110 / / 02.10.2004
Цитата:
Originally posted by SomewherSomehow
А КАК ЭТО ТАК?! Вы знакомы со спецификацией языка SQL? В таких случаях обычно делается так (на этом примере), в таблицу serts добавляется поле firmsID, т.е. PK таблицы firms и соответсвенно привязыается к таблице firms, отношение один ко многим. Других способов нет.



Спасибо, но можно немного подрообнее а то что-то я не совсем понял,
т.е. в таблицу serts надо добавить поле ссылающееся на фирмы к которым принадлежит этот сертификат? Но ведь там тоже должно быть много значений, т.к. один сертификат может быть у многих фирм? или я чего то не понял?

385
06 апреля 2006 года
SomewherSomehow
477 / / 25.07.2004
Цитата:
Originally posted by hell_admin
Спасибо, но можно немного подрообнее а то что-то я не совсем понял,
т.е. в таблицу serts надо добавить поле ссылающееся на фирмы к которым принадлежит этот сертификат? Но ведь там тоже должно быть много значений, т.к. один сертификат может быть у многих фирм? или я чего то не понял?



Тогда строишь отношения многие ко многим. Т.е. если у одной компании может быть много сертификатов и один сертификат может принадлежать разным компания.
Ассоциативная табличка :
FirmsSerts:
(
FirmsSertsID (PK)
FirmsID (FK)
SertsID (FK)
)
ну и еще лучше повесить unique index на поля FirmsID+SertsID.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог