Ассоциативный объект - Associative entity
![]() | Эта статья включает Список ссылок, связанное чтение или внешняя ссылка, но его источники остаются неясными, потому что в нем отсутствует встроенные цитаты.Май 2018) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
An ассоциативный объект это термин, используемый в реляционный и сущность – отношение теория. Реляционная база данных требует реализации базового отношения (или базовой таблицы) для разрешения отношения "многие-ко-многим". Базовое отношение, представляющее такого рода сущность, неофициально называется ассоциативная таблица.
![](http://upload.wikimedia.org/wikipedia/en/1/14/Associate_Entity.png)
Как упоминалось выше, ассоциативные сущности реализуются в структуре базы данных с использованием ассоциативных таблиц, которые представляют собой таблицы, которые могут содержать ссылки на столбцы из одной или разных таблиц базы данных в одной базе данных.
![Понятие таблицы сопоставления](http://upload.wikimedia.org/wikipedia/commons/d/d7/Mapping_table_concept.png)
Ассоциативная (или соединительная) таблица отображает две или более таблиц вместе, ссылаясь на первичные ключи каждой таблицы данных. Фактически, он содержит несколько внешних ключей, каждый из которых находится во взаимосвязи «многие к одному» от таблицы соединений к отдельным таблицам данных. PK ассоциативной таблицы обычно состоит из самих столбцов FK.
Ассоциативные таблицы в просторечии известны под многими именами, в том числе таблица ассоциаций, бридж стол, таблица перекрестных ссылок, пешеходный переход, промежуточный стол, таблица пересечений, присоединиться к столу, соединительный стол, таблица ссылок, таблица ссылок, преобразователь "многие ко многим", таблица карты, таблица сопоставления, таблица сопряжения, сводная таблица (неправильно использовано в Laravel - не путать с правильным использованием сводная таблица в электронных таблицах ), или же таблица переходов.
Использование ассоциативных таблиц
Примером практического использования ассоциативной таблицы может быть назначение разрешений пользователям. Может быть несколько пользователей, и каждому пользователю может быть назначено ноль или более разрешений. Индивидуальные разрешения могут быть предоставлены одному или нескольким пользователям.
СОЗДАЙТЕ СТОЛ Пользователи ( Логин пользователя варчар(50) НАЧАЛЬНЫЙ КЛЮЧ, Пользовательский пароль варчар(50) НЕТ НОЛЬ, Имя пользователя варчар(50) НЕТ НОЛЬ);СОЗДАЙТЕ СТОЛ Разрешения ( PermissionKey варчар(50) НАЧАЛЬНЫЙ КЛЮЧ, Разрешение Описание варчар(500) НЕТ НОЛЬ);- Это соединительный стол.СОЗДАЙТЕ СТОЛ UserPermissions ( Логин пользователя варчар(50) РЕКОМЕНДАЦИИ Пользователи (Логин пользователя), PermissionKey варчар(50) РЕКОМЕНДАЦИИ Разрешения (PermissionKey), НАЧАЛЬНЫЙ КЛЮЧ (Логин пользователя, PermissionKey));
![Визуальное изображение описанной схемы таблицы с указанием взаимосвязей](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a3/Junction_Table.svg/498px-Junction_Table.svg.png)
А ВЫБРАТЬ -запись на соединительном столе обычно включает присоединение основной стол с соединительным столом:
ВЫБРАТЬ * ИЗ ПользователиПРИСОЕДИНИТЬСЯ UserPermissions С ПОМОЩЬЮ (Логин пользователя);
Это вернет список всех пользователей и их разрешений.
Вставка в таблицу соединений включает несколько шагов: сначала вставка в основную таблицу (таблицы), а затем обновление таблицы соединений.
- Создание нового пользователяВСТАВЛЯТЬ В Пользователи (Логин пользователя, Пользовательский пароль, Имя пользователя)ЗНАЧЕНИЯ ('SomeUser', SecretPassword, 'Имя пользователя');- Создание нового разрешенияВСТАВЛЯТЬ В Разрешения (PermissionKey, Разрешение Описание)ЗНАЧЕНИЯ ('Ключ', 'Ключ, используемый для нескольких разрешений');- Наконец, обновление развязкиВСТАВЛЯТЬ В UserPermissions (Логин пользователя, PermissionKey)ЗНАЧЕНИЯ ('SomeUser', 'Ключ');
Используя внешние ключи, база данных автоматически разыменует значения таблицы UserPermissions на свои собственные таблицы.
Смотрите также
Рекомендации
- Хоффер, Джеффри А .; Прескотт, Мэри Б.; Макфадден, Фред Р. (2004). Современное управление базами данных (7-е изд.). Прентис Холл. ISBN 978-0131453203.
- Кодд, Э.Ф. (1970). «Реляционная модель данных для больших общих банков данных». Коммуникации ACM. ACM. 13 (6): 377–387. Дои:10.1145/362384.362685.