Значение "n: m" и "1: n" в дизайне базы данных

В дизайне базы данных, что означают n: m и 1: n?

Имеет ли он какое-либо отношение к ключам или отношениям?

Ответ 1

m:n используется для обозначения отношения "много ко многим" (m объектов с другой стороны, связанных с n с другой), а 1:n относится к отношения "один ко многим" (1 объект с другой стороны, связанный с n с другой).

Ответ 2

1: n означает "один ко многим"; у вас есть две таблицы, и каждая строка таблицы A может ссылаться на любое количество строк в таблице B, но каждая строка в таблице B может ссылаться только на одну строку в таблице A (или вообще отсутствует).

n: m (или n: n) означает "много-ко-многим"; каждая строка в таблице A может ссылаться на многие строки в таблице B, и каждая строка в таблице B может ссылаться на многие строки в таблице A.

Отношение 1: n обычно моделируется с использованием простого внешнего ключа - один столбец в таблице A ссылается на аналогичный столбец в таблице B, обычно на первичный ключ. Поскольку первичный ключ однозначно идентифицирует ровно одну строку, на эту строку можно ссылаться многие строки в таблице A, но каждая строка в таблице A может ссылаться только на одну строку в таблице B.

Связь n: m не может быть выполнена таким образом; общим решением является использование таблицы ссылок, содержащей два столбца внешнего ключа, по одному для каждой связанной с ним таблицы. Для каждой ссылки между таблицей A и таблицей B одна строка вставляется в таблицу ссылок, содержащую идентификаторы соответствующих строк.

Ответ 3

n: m → , если вы не знаете как n, так и m, это просто много для многих, и он представлен таблицей моста между двумя другими таблицами, такими как

   -- This table will hold our phone calls.
CREATE TABLE dbo.PhoneCalls
(
   ID INT IDENTITY(1, 1) NOT NULL,
   CallTime DATETIME NOT NULL DEFAULT GETDATE(),
   CallerPhoneNumber CHAR(10) NOT NULL
)

-- This table will hold our "tickets" (or cases).
CREATE TABLE dbo.Tickets
(
   ID INT IDENTITY(1, 1) NOT NULL,
   CreatedTime DATETIME NOT NULL DEFAULT GETDATE(),
   Subject VARCHAR(250) NOT NULL,
   Notes VARCHAR(8000) NOT NULL,
   Completed BIT NOT NULL DEFAULT 0
)

это таблица моста для реализации сопоставления между двумя таблицами

CREATE TABLE dbo.PhoneCalls_Tickets
(
   PhoneCallID INT NOT NULL,
   TicketID INT NOT NULL
)

От одного до большого (1: n) - это просто одна таблица, которая имеет столбец в качестве первичного ключа и другую таблицу, которая имеет этот столбец как отношение внешнего ключа

Тип продукта и продукта, в котором один продукт может иметь много продуктов

Ответ 4

В реляционной базе данных все типы отношений представлены таким же образом: как отношения. Ключ-кандидат каждого отношения (и, возможно, другие ограничения) определяет, какие отношения представлены. 1: n и m: n - два вида бинарных отношений:

C {Employee*,Company}
B {Book*,Author*}

В каждом случае * обозначает атрибут ключа. {Book, Author} является составным ключом.

C - отношение, в котором каждый сотрудник работает только для одной компании, но у каждой компании могут быть многие сотрудники (1: n): B - это отношение, в котором книга может иметь много авторов, а автор может писать книги many (m: n):

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

Возможны и другие виды отношений: n-ary (с более чем двумя компонентами); фиксированная мощность (m: n, где m и n - фиксированные константы или диапазоны); направленный; и так далее. Уильям Кент в своей книге "Данные и реальность" идентифицирует не менее 432 видов - и это просто для двоичных отношений. На практике бинарные отношения 1: n и m: n очень распространены и обычно выделяются как особенно важные при проектировании и понимании моделей данных.

Ответ 5

Чтобы объяснить два понятия на примере, представьте, что у вас есть система ввода заказов для книжного магазина. Отображение заказов для элементов много для многих (n: m), потому что каждый заказ может иметь несколько элементов, и каждый элемент можно упорядочить несколькими порядками. С другой стороны, поиск клиентов и заказов один-на-один (1: n), потому что клиент может разместить несколько заказов, но заказ никогда не может быть более одного клиента.

Ответ 6

От многих до многих (n: m) От одного до большого (1: n)

Ответ 7

m: n относится ко многим отношениям где 1: n означает отношение один к другому например сотрудник (номер, имя, Skillset) Skillset (идентификатор, skillname, квалификация)

в этом случае один сотрудник может иметь много навыков и игнорировать другие случаи, вы можете сказать, что его отношение 1: N