public class Movie
{
public int id;
public string Title;
public IList<Director> dirs;
}
public class Director
{
public string Name;
public DateTime birthday;
}
這可能映射到這樣一個模式:多對多NHibernate的
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的一流導演裏面?我想我真正想要的只是一種確保m_director表中沒有重複的導演名稱的方法,允許電影的多個導演並且不讓Director類關心他們指定的電影。
只需添加Director導演的電影列表會更好嗎?如何阻止兩次添加同一部電影?
問題很混亂。無論您選擇保留導演指示的電影列表,都取決於您是否需要該程序中的信息。而且它對於如何確保m_director表中沒有重複名稱沒有任何影響。 –