Зазвичай, коли у вас є таблиця з багатоколонним первинним ключем, це результат таблиці приєднання (багато-багато-багато), яка стала підвищеною, щоб бути її власною сутністю (і, таким чином, заслуговує на те, що це власний первинний ключ). Є багато людей, які б заперечували, що будь-яка таблиця приєднання БУДЬ за замовчуванням сутність, але це обговорення для іншого дня.
Давайте розглянемо гіпотетичні відносини «багато до багатьох»:
Учень * --- * Клас
(Учень може бути у декількох класах, у класі може бути кілька учнів).
Між цими двома таблицями буде розміщена таблиця переходу під назвою StudentClass (або ClassStudent залежно від того, як ви її записуєте). Іноді хочеться відслідковувати такі речі, як колись учень був у класі. Тож ви додасте його до таблиці StudentClass. На даний момент StudentClass став унікальною сутністю ... і йому слід дати ім'я, щоб визнати його таким, наприклад, Зарахування.
Учень 1 --- * Зарахування * --- 1 клас
(Учень може мати багато Реєстрацій; кожен Запис призначений для одного класу (або йде навпаки, якщо Клас може мати багато Реєстрацій, кожен Запис призначений для одного Студента).
Тепер ви можете запитати такі речі, скільки учнів було зараховано до класу Хімія 101 минулого року? Або в які класи навчався студент Джон До, відвідуючи університет Acme? Це було можливо без окремого первинного ключа, але як тільки у вас є первинний ключ для зарахування, легшим буде запит із цих записів (за ідентифікатором), скільки учнів отримали прохідну оцінку?
Визначення того, чи заслуговує суб'єкт господарювання ПК, зводиться до того, скільки запитів (або маніпуляцій) ви зробите для цієї сутності. Скажімо, наприклад, ви хотіли прикріпити завдання, виконані для учня, в класі. Логічним місцем для приєднання цього об'єкта (Присвоєння) було б суб'єкт реєстрації. Якщо записати свій власний первинний ключ, це спростить запити про призначення.