如何解决CakePHP中电影,演员,导演等之间的模型关联
|| 我正在尝试找出设置表/模型关联的最佳方法。 我有一张桌子movies
。每部电影可以有零个或多个演员,导演,发行人,作家等。
如果我为每种类型的人使用不同的表/模型,我可以将其设置得很好……但这似乎很不干净。
我的想法是使用People
模型/表,将HABTM转换为PeopleType
,将HABTM转换为Movie
。
将特定的人与电影联系起来就可以了,但是……像克林特·伊斯特伍德这样的人呢?他将是一部电影的导演,另一部电影的演员,甚至两部电影都可以。电影如何知道它指的是哪种类型?
只是无法将最好的方法缠住我的头。
解决方法
您可以执行的另一种方法:
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,...)
, 由于一个人可以在一部电影中担任导演,而在另一部电影中担任演员,因此您使用“人物类型”的方法似乎并不好,因为您的“ 5”表格会包含每个属于多种类型的人的重复信息。我将创建表people_details
并为每种类型directors
,actors
,publishers
等创建特定表,并带有指向people_details
表的外键。 “ 7”,“ 8”,“ 9”表还将包含仅特定于相应类型的人员的任何列。
综上所述,Actor
属于To15ѭ,Director
属于To15ѭ,Actor
HABTMMovie
,Director
HABTMMovie
。
, 在您的联接表中:
电影人
您可以为\“ role \”之类的内容添加一个额外的字段。您要在那部电影中指定人物功能的位置。然后,您可以将Client Eastwood两次添加到联接表中,一次是针对他在该电影制作中扮演的每个角色。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。