public class Movie
{
public int id;
public string Title;
public IList<Director> dirs;
}
public class Director
{
public string Name;
public DateTime birthday;
}
Est-ce possible de la carte à un schéma comme celui-ci:Beaucoup à beaucoup 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`)
)
sans maintenir un IList de film à l'intérieur directeur de classe? Je suppose que ce que je veux vraiment, c'est juste un moyen de s'assurer qu'il n'y a pas de noms de réalisateurs dupliqués dans la table m_director, autoriser plusieurs directeurs d'un film et ne pas laisser la classe Director s'occuper des films qu'ils dirigent.
Serait-il préférable de simplement ajouter une liste de films qu'un réalisateur a réalisé? Comment puis-je empêcher le même film d'être ajouté deux fois ici?
La question est source de confusion. Que vous choisissiez de maintenir une liste de films qu'un réalisateur a dirigée, c'est à vous de décider, selon que vous avez besoin de cette information dans votre programme. Et cela n'a aucune incidence sur la façon dont vous vous assurez qu'il n'y a pas de noms en double dans la table m_director. –