MySQL, как сделать столбец дочерней таблицы, указывать на родительскую таблицу?

101
11

Я только что запустил базу данных MySQL, и я смущен тем, что может сделать внешний ключ.

Предположим, что у меня есть родительская таблица (учитель) этого, а taxno - первичный ключ;

taxno   Tfname   Tlname   Tgender   Tquali    Thours      

1111 TOH JIM M HONOURS 120

и мой детский стол (кубок);

taxno   Tfname   Tlname   Tgender   Tquali    Thours  Subtitle Subtype

Как я могу это сделать, если, например, мой ввод для чашки

 taxno   Tfname   Tlname   Tgender   Tquali    Thours  Subtitle   Subtype

1111 dddd dddd F weqwe 100 HISTORY 3

мне будет предложено, чтобы мой ввод для чашки был неправильным?

я создал внешний ключ для taxno, но он применим только к taxno.

спросил(а) 2015-05-15T02:33:00+03:00 5 лет, 1 месяц назад
1
Решение
67

Красота реляционного db заключается в том, что с правильно построенными таблицами вам не нужно повторять информацию, как вы делали.

Если таблица вашего teacher содержит информацию, такую как имя, пол и т.д., Вам не нужно дублировать эту информацию в другом месте.

Например, если ваша таблица teacsub - это просто teacsub(taxno, subtitle, subtype), то вы можете получить свою "полную" информацию, соединяя две таблицы вместе с таким запросом:

select *
from teacher
inner join teacsub
on teacher.taxno = teacsub.taxno

И это будет радостно уходить и вытаскивать все строки из обеих таблиц, которые имеют общую taxno

ответил(а) 2015-05-15T03:45:00+03:00 5 лет, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема