Jump to content

Ассоциативная сущность

(Перенаправлено из таблицы соединений )

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

Ассоциативная сущность (используя обозначение Чена )

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

Понятие таблицы сопоставления
Concept of a mapping table

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

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

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

[ редактировать ]

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

CREATE TABLE Users (
    UserLogin varchar(50) PRIMARY KEY,
    UserPassword varchar(50) NOT NULL,
    UserName varchar(50) NOT NULL
);

CREATE TABLE Permissions (
    PermissionKey varchar(50) PRIMARY KEY,
    PermissionDescription varchar(500) NOT NULL
);

-- This is the junction table.
CREATE TABLE UserPermissions (
    UserLogin varchar(50) REFERENCES Users (UserLogin),
    PermissionKey varchar(50) REFERENCES Permissions (PermissionKey),
    PRIMARY KEY (UserLogin, PermissionKey)
);
Визуальное изображение описанной схемы таблицы с указанием связей.
A visual depiction of the table schema described, with relationships indicated

Оператор SELECT в соединительной таблице обычно включает в себя соединение основной таблицы с соединительной таблицей:

SELECT * FROM Users
JOIN UserPermissions USING (UserLogin);

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

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

-- Creating a new User
INSERT INTO Users (UserLogin, UserPassword, UserName)
VALUES ('SomeUser', 'SecretPassword', 'UserName');

-- Creating a new Permission
INSERT INTO Permissions (PermissionKey, PermissionDescription)
VALUES ('TheKey', 'A key used for several permissions');

-- Finally, updating the junction
INSERT INTO UserPermissions (UserLogin, PermissionKey)
VALUES ('SomeUser', 'TheKey');

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

См. также

[ редактировать ]
  • Хоффер, Джеффри А.; Прескотт, Мэри Б.; Макфадден, Фред Р. (2004). Современное управление базами данных (7-е изд.). Прентис Холл. ISBN  978-0131453203 .
  • Кодд, Э.Ф. (1970). «Реляционная модель данных для больших общих банков данных» . Коммуникации АКМ . 13 (6). АКМ: 377–387. дои : 10.1145/362384.362685 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fa13953317554af4ef85d73df24defa5__1721759040
URL1:https://arc.ask3.ru/arc/aa/fa/a5/fa13953317554af4ef85d73df24defa5.html
Заголовок, (Title) документа по адресу, URL1:
Associative entity - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)