【发布时间】:2013-04-22 01:30:55
【问题描述】:
我的简单例子可以是这样。我有电影桌,电影有导演和演员。在我的数据库中,一部电影可以有一个或多个导演和一个或多个演员。我还有一个表格 Persons ,其中包含人员的信息。所以一个人可以在电影中扮演不同的角色,我有其他表可以扮演角色,表 Roles。
在很多情况下,我有兴趣了解电影的导演或演员,因此我可以通过两种主要方式来分配表格。
第一个选项:三元关系:
Movies(IDMovie, ...)
Persons(IDPerson, ...)
Roles(IDRol,...)
MoviesPersons(IDMovie, IDPerson, IDRol...)
在这种情况下,我使用三元关系。
第二个选项是:
MoviesDirectors(IDMovie, IDPerson,...)
MoviesActors(IDMovie, IDPerson,...)
在这种情况下,我可以从关系表中推断出角色。
哪个是最好的选择?
谢谢。
编辑:如果我使用两个二元关系的选项,如果将来,如果我想要配乐的作曲家,我需要创建一个新的表和关系,但是,我不使用三元关系'不需要做任何事情,只需在表 Roles 中添加一个新角色和其他任何内容。
在性能上两个二元关系比一个三元关系更好?
谢谢。
【问题讨论】: