2010-08-03 7 views

ответ

65

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

+5

Ах, ок, так что «m» и «n «взяты как переменные, которые я вижу: D, я думал, что« м »стоял за« много », и по этой причине« n »заблуждался относительно того, что стоит (не может стоять« ни один », я имею в виду). В любом случае спасибо: D –

+10

FYI, поскольку никто не упомянул об этом, термин Comp Sci для этого отношения называется «мощность», см. Http://en.wikipedia.org/wiki/Cardinality_%28data_modeling%29 для деталей. –

1

многие ко многим (п: т) один ко многим (1: N)

44

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

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

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

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

+0

«таблица ссылок», также известная как «таблица соединений» –

+0

«Нет вообще» -> не будет ли это отношением 0/1: n? (Редко) Мое понимание 1: n заключается в том, что оно должно иметь одно. Например, «Город должен находиться в одной стране, но страны могут иметь n городов», «Компания может иметь n сотрудников, но Сотрудник должен работать для одной компании», ... –

2

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

5

п: т -> если вы не знаете, как п и т это просто многие ко многим, и она представлена ​​в таблице моста между 2 другими таблицами, как

-- 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 
) 

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

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

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

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

3

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

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

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

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

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

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

0

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

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