Многие ко многим - PullRequest
       2

Многие ко многим

0 голосов
/ 05 августа 2011
public class Movie
{
public int id;
public string Title;
public IList<Director> dirs;
}

public class Director
{
public string Name;
public DateTime birthday;
}

Можно ли отобразить схему, подобную этой:

CREATE TABLE IF NOT EXISTS `movie` (
  `m_ID` varchar(9) NOT NULL 
  `Title` varchar(255) NOT NULL 
  PRIMARY KEY (`m_ID`),
  KEY `m_ID` (`ReleaseDate`,`Title`,)
)
CREATE TABLE IF NOT EXISTS `m_director` (
  `dirID` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `dirName` varchar(40) NOT NULL,
  `birthday` date 
  PRIMARY KEY (`dirID`),
  UNIQUE KEY `dirName` (`dirName`)
) 
CREATE TABLE IF NOT EXISTS `m_directs` (
  `m_ID` char(9) NOT NULL
  `dirID` int(11) unsigned NOT NULL,
  UNIQUE KEY `m_ID_2` (`m_ID`,`dirID`),
  KEY `m_ID` (`m_ID`),
  KEY `dirID` (`dirID`)
) 

, не поддерживая IList of Movie внутри класса Director?Полагаю, что я действительно хочу, так это просто обеспечить отсутствие дублирующих имен режиссеров в таблице m_director, разрешить нескольким режиссерам фильма и не заботиться о том, какие фильмы они режиссируют в классе Режиссеров.просто добавить список фильмов режиссера?Как я могу остановить добавление одного и того же фильма сюда дважды?

Ответы [ 2 ]

0 голосов
/ 05 августа 2011

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

0 голосов
/ 05 августа 2011

Не думаю, что можно сопоставить ваш сценарий без использования IList of Movies в вашем классе Director ... Потому что это во многих для многих сопоставлениях, это то, как определяются отношения с обеих сторон ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...