Ассоциативный объект - Associative entity

An ассоциативный объект это термин, используемый в реляционный и сущность – отношение теория. Реляционная база данных требует реализации базового отношения (или базовой таблицы) для разрешения отношения "многие-ко-многим". Базовое отношение, представляющее такого рода сущность, неофициально называется ассоциативная таблица.

Ассоциативный объект (с использованием Чен обозначение)

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

Понятие таблицы сопоставления

Ассоциативная (или соединительная) таблица отображает две или более таблиц вместе, ссылаясь на первичные ключи каждой таблицы данных. Фактически, он содержит несколько внешних ключей, каждый из которых находится во взаимосвязи «многие к одному» от таблицы соединений к отдельным таблицам данных. PK ассоциативной таблицы обычно состоит из самих столбцов FK.

Ассоциативные таблицы в просторечии известны под многими именами, в том числе таблица ассоциаций, бридж стол, таблица перекрестных ссылок, пешеходный переход, промежуточный стол, таблица пересечений, присоединиться к столу, соединительный стол, таблица ссылок, таблица ссылок, преобразователь "многие ко многим", таблица карты, таблица сопоставления, таблица сопряжения, сводная таблица (неправильно использовано в Laravel - не путать с правильным использованием сводная таблица в электронных таблицах ), или же таблица переходов.

Использование ассоциативных таблиц

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

СОЗДАЙТЕ СТОЛ Пользователи (    Логин пользователя варчар(50) НАЧАЛЬНЫЙ КЛЮЧ,    Пользовательский пароль варчар(50) НЕТ НОЛЬ,    Имя пользователя варчар(50) НЕТ НОЛЬ);СОЗДАЙТЕ СТОЛ Разрешения (    PermissionKey варчар(50) НАЧАЛЬНЫЙ КЛЮЧ,    Разрешение Описание варчар(500) НЕТ НОЛЬ);- Это соединительный стол.СОЗДАЙТЕ СТОЛ UserPermissions (    Логин пользователя варчар(50) РЕКОМЕНДАЦИИ Пользователи (Логин пользователя),    PermissionKey варчар(50) РЕКОМЕНДАЦИИ Разрешения (PermissionKey),    НАЧАЛЬНЫЙ КЛЮЧ (Логин пользователя, PermissionKey));
Визуальное изображение описанной схемы таблицы с указанием взаимосвязей

А ВЫБРАТЬ -запись на соединительном столе обычно включает присоединение основной стол с соединительным столом:

ВЫБРАТЬ * ИЗ ПользователиПРИСОЕДИНИТЬСЯ UserPermissions С ПОМОЩЬЮ (Логин пользователя);

Это вернет список всех пользователей и их разрешений.

Вставка в таблицу соединений включает несколько шагов: сначала вставка в основную таблицу (таблицы), а затем обновление таблицы соединений.

- Создание нового пользователяВСТАВЛЯТЬ В Пользователи (Логин пользователя, Пользовательский пароль, Имя пользователя)ЗНАЧЕНИЯ ('SomeUser', SecretPassword, 'Имя пользователя');- Создание нового разрешенияВСТАВЛЯТЬ В Разрешения (PermissionKey, Разрешение Описание)ЗНАЧЕНИЯ ('Ключ', 'Ключ, используемый для нескольких разрешений');- Наконец, обновление развязкиВСТАВЛЯТЬ В UserPermissions (Логин пользователя, PermissionKey)ЗНАЧЕНИЯ ('SomeUser', 'Ключ');

Используя внешние ключи, база данных автоматически разыменует значения таблицы UserPermissions на свои собственные таблицы.

Смотрите также

Рекомендации

  • Хоффер, Джеффри А .; Прескотт, Мэри Б.; Макфадден, Фред Р. (2004). Современное управление базами данных (7-е изд.). Прентис Холл. ISBN  978-0131453203.
  • Кодд, Э.Ф. (1970). «Реляционная модель данных для больших общих банков данных». Коммуникации ACM. ACM. 13 (6): 377–387. Дои:10.1145/362384.362685.