Непонятен принцип работы текущей базы данных
В БД имеются 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 шт):
Поля id из разных таблиц не имеют к друг другу отношения.
Пользователь с номером 1 (т.е. запись в таблице Users со значением поля id==1), может не иметь ничего общего з заказом номер 1 (т.е. с записью в Orders со значением 1 в поле id). Заказ номер 1, вполне возможно, сделал пользователь номер 8 (или какой-то другой).
Значения в поле id у разных записей в таблице Users (как и в других) действительно уникальны. Как раз для того, чтоб указав идентификатор (или по другому "номер"), можно было точно понять, о какой записи (пользователе идет речь).