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表中没有重复名称没有任何影响。 –