我正在试图找出设置表格/模型关联的最佳方法。
我有一张movies
的表格。每部电影可以有零个或多个演员,导演,出版商,作家......等等。
如果我为每种类型的人使用不同的表/模型,我可以设置得很好......但这似乎是不洁净的。
我的想法是使用People
模型/表格,其中HABTM为PeopleType
,HABTM为Movie
。
这可以很好地将特定人物与电影联系起来,但是......像克林特·伊斯特伍德这样的人呢 - 他将成为一部电影的导演,另一部电影的导演,甚至两者兼而有之。电影怎么知道它指的是哪种类型?
无法绕过最好的方法来解决这个问题。
答案 0 :(得分:1)
由于一个人可以成为一部电影中的导演,另一部电影中的演员,你使用“人物类型”的方法看起来不太好,因为你的我会为每个类型people
表格会包含每个人的重复信息多种类型。people_details
,directors
,actors
等创建一个表publishers
和特定表,并使用外键{{1表。 people_details
,directors
,actors
表格还会包含仅针对相应人群类型的任何列。
总结一下,publishers
属于Actor
,PersonDetails
属于Director
,PersonDetails
HABTM Actor
,Movie
HABTM {{ 1}}。
答案 1 :(得分:1)
您可以采取的另一种方式:
people_types (id, name)
people_details (id, first_name, last_name, ....)
people (id, person_details_id, person_type_id)
movies_people(id, person_id, movie_id)
movies (id, title, ...)
答案 2 :(得分:0)
在您的联接表中: movies_people
您可以为“角色”添加额外的字段。在那里你将特定人物在该电影中的功能。然后,您可以将Client Eastwood添加到连接表中两次,每次为该电影制作中的每个角色添加一次。