Непонятен принцип работы текущей базы данных

В БД имеются 3 таблицы: У каждой из них поле id является primary key

Orders Users Countries
id id id
user_id registered_at full_name
transaction country_id iso
finished_at campaign

В таблице Orders на каждый user_id приходится много записей в поле transaction. Вопрос следующий, как может работать такая база данных? Ведь поле id(primary key) обязано быть уникальным и в таблице Orders будут создаваться много уникальных id для которых не будет соответствия в других таблицах?

Например у нас есть 10 пользователей, каждый из которых совершил по 10 транзакций. И тогда в таблице Orders у нас будет 100 записей, но в таблице Users и Countries будет всего 10, если я правильно понимаю описанное мной устройство данной БД. Так ли это?


Ответы (1 шт):

Автор решения: Roman Konoval

Поля id из разных таблиц не имеют к друг другу отношения.

Пользователь с номером 1 (т.е. запись в таблице Users со значением поля id==1), может не иметь ничего общего з заказом номер 1 (т.е. с записью в Orders со значением 1 в поле id). Заказ номер 1, вполне возможно, сделал пользователь номер 8 (или какой-то другой).

Значения в поле id у разных записей в таблице Users (как и в других) действительно уникальны. Как раз для того, чтоб указав идентификатор (или по другому "номер"), можно было точно понять, о какой записи (пользователе идет речь).

→ Ссылка