2013-07-05 5 views
0

есть родительская таблица, он может добавить несколько дочерних идентификаторов электронной почты (неизвестный) (первичный ключ). И у ребенка может быть один или два родительских идентификатора электронной почты (мать/отец)для многих баз данных phpmyadmin

Это будет много-много отношений?

Можете ли вы направить меня на построение этих отношений в phpmyadmin.

+0

Возможно, вы захотите использовать какую-то модельную систему, такую ​​как NHibernate для этого –

ответ

0

Взаимодействие многих-многих в обычной реляционной базе данных, например MySQL, обычно создается с использованием таблицы перекрестных ссылок. Это таблица, которая связывает записи с другими таблицами вместе.

Например, когда у вас есть таблицы А и В, необходимо создать третью таблицу, C, который может выглядеть (очень упрощенно) как это:

A  B   C 
==  ==  ==== 
A1  B1  A1B3 
A2  B2  A2B1 
A3  B3  A2B2 
       A3B2 

Так что в этом крестовом столе связи, вы может видеть, что запись A2 связана с двумя записями в B, так же, как B2 связан с двумя записями в A. Конечно, эта схема упрощена. A1 фактически является ключевым полем таблицы A, а A1B1 является первичным ключом, который состоит из двух полей, один из которых имеет ограничение внешнего ключа к ключу таблицы A, а другой - FK для таблицы B.

Это не всегда должно быть много-много отношений. Например, вы можете сказать, что у человека есть родители, которые также являются людьми. Поскольку для людей не очень важно иметь больше двух биологических родителей, вы можете смело дать ряд в person a fatherid и motherid, оба из которых относятся к той же таблице person. Таким образом, как всегда, это зависит от ваших конкретных потребностей.

+0

Oh. По-видимому, эти таблицы известны [многими именами] (http://en.wikipedia.org/wiki/Junction_table). – GolezTrol

Смежные вопросы