1 (изменено: Pacan4ik, 2009-09-29 08:23:21)

Тема: Связи с таблицами

Парни подскажите!
С PHP работаю совсем недавно, поэтому хочется узнать ответы на несколько вопросов.
Есть две таблицы prof и fio, между которыми хочу организовать связь один-ко-многим соответственно. В одну добавляем профессию, а в другую фамилии
1)prof
------------------------------------             
|    id_prof      |   profesija       |   
------------------------------------
|                   |                    |
------------------------------------

2)fio
------------------------------------
|    id_fio         |   fio             |   
------------------------------------
|                   |                    |
------------------------------------

В первой таблице id_prof(primary, auto_increment), во второй id_fio(primary). Сделал связь, дизайнера нет, но в phpmyadmin  --> pma_relation появляется запись
master_db       master_table       master_field       foreign_db       foreign_table       foreign_field
pron               prof              id_prof               pron               fio                      fio_id

Хочу через форму ввести двух инженеров Гусева и Иванова. Соответственно в prof добавляется ИНЖЕНЕР, а в fio добавляются две записи - Гусева и Иванов.
1) Как сделать такой ввод через php запрос?
2) Как потом можно вывести всех инженеров?
3) Обязательно -ли использовать конструкцию JOIN, если в phpmyadmin уже организована связь?

2

Re: Связи с таблицами

Pacan4ik
Думаю правильнее поле id_fio сделать первичным с автоувеличением и добавить в таблицу fio поле id_prof содержащее идентификатор prof.id_prof. В таком случае необходимо связать fio.id_prof (внешний ключ) и prof.id_prof (ссылочный ключ).

Если таблица не InnoDB и соответственно не осуществляется никаких действий над связанными таблицами при удалении или обновлении данных, то связи вы увидите только в phpMyAdmin и добавление данных ничем не отличается от того, как если бы связь таблиц не делать.

1) Сперва необходимо создать запись в таблице prof и выбрав идентификатор профессии установить его записи в fio.

2) Всех инженеров вы выведете по fio.id_prof.

3) Обязательно использовать JOIN. Связь, которую вы делаете в phpMyAdmin существует только для визуализации связи в самом phpMyAdmin. Разумеется, если тип таблицы не InnoDB.