Можно ли обойтись в дочерних таблицах без своего id?

173
21 апреля 2018, 19:40

Будет ли считаться правильным, если у дочерних таблиц будет такой же id, как и у родительской? (Внешние ключи будут совпадать)

На примере ниже общие данные таблиц "Преподаватели" и "Студенты" вынесены в таблицу "Пользователи". При этом я хочу убрать внешние ключи "Пользователь" в этих таблицах, напрямую взяв id пользователь из таблицы "Пользователи".

Можно ли назвать это правильным вариантом?

Answer 1

Ничего неправильного в этом нет. Классический пример наследования таблиц. Только для правильного дизайна поле id в таблицах студенты и преподаватели должно быть одновременно и первичным ключом в этих таблицах и внешним ключом, который ссылается на поле id (которое тоже является первичным ключом) из users

READ ALSO
Как создать класс, в котором каждый метод выполняется в новом потоке (Qt, c++)?

Как создать класс, в котором каждый метод выполняется в новом потоке (Qt, c++)?

У меня есть программа которая время от времени выполняет разные командыЗа вызов этих команд отвечает 1 класс(sender), а выполнять их должен другой(handler)

206
Чтение байтов/битов из памяти C++

Чтение байтов/битов из памяти C++

У меня есть файл с int числом в немЗначит в памяти этот файл занимает 4 байта

193
Передать блок Ruby как аргумент в СXX-extension?

Передать блок Ruby как аргумент в СXX-extension?

Нужно в CXX-extension объявить метод, который принимал бы блок Ruby (чтобы прогресс задачи отслеживать)Использую биндинги RICE

206
Создание двумерного массива C++

Создание двумерного массива C++

создаю, заполняю и вывожу двумерные массивыНо почему-то числа в первой строке и в первом столбце одинаковые

215