Что может быть целью первичных ключей во всех таблицах, полученных из одной таблицы? - PullRequest
0 голосов
/ 11 апреля 2019

Я действительно ломал голову над этим и не знаю, как правильно задать вопрос, чтобы найти ответ в Google или StackOverflow и т. Д.

На работе используется очень старая система- У меня нет доступа к серверной части, поэтому я не могу просматривать его таблицы, но я знаю, что это база данных SQL, и я достаточно экспериментировал с API, чтобы увидеть, что делает добавление к каждой таблице, и я спрашиваю, какон распределяет первичные ключи;

У него много таблиц, каждая из которых имеет первичный ключ, как и ожидалось, но первичный ключ в любой / всех его таблицах, по-видимому, выделен так, что не происходит абсолютно никакого дублирования первичного ключа.ключи в любом месте системы.

например,

add row to table 1 get pk = 1
add row to table 2 get pk = 2
add row to table 1 again, get pk = 3
add row to table 10 and get pk = 4

Является ли этот метод чем-то вроде старой техники баз данных?

Что может быть целью этого?

Есть более забавные нюансы, о которых я не буду вдаваться в подробности, например, определенный диапазон значений pk для определенных таблиц, но я просто хотел посмотреть, распознает ли кто-нибудь основнойВот здесь, и если в этом есть смысл, или это просто плохой / странный дизайн

1 Ответ

1 голос
/ 11 апреля 2019

Первичный ключ должен быть уникальным только в пределах одной таблицы.Не существует такого понятия, как первичный ключ для нескольких таблиц.

Это может быть полезно при некоторых обстоятельствах.Например, это позволит всем объектам быть представленными в одной таблице.Это может быть полезно для «общей» информации, такой как добавление комментариев к сущностям.

Более прозаично, я видел это в старых базах данных Oracle.В Oracle не было автоматизированного механизма генерации идентификаторов, поэтому для этого требовалось использовать последовательность.Для удобства, из-за лени или дизайна несколько таблиц могут использовать одну и ту же последовательность, что приводит к поведению, которое вы видите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...