日期:2014-05-18  浏览次数:20383 次

请教一个数据库的模型设计问题(有关“联系”)
有一个数据库,现有两张表。
一张表是Star,有2列
StarID,演员的ID号
name,演员的姓名
另一张表是Movie,有2列
MovieID,影片的ID号
name,影片的名称
一个演员可能会出演过n多部电影,比如说刘德华,但是很多没名气的演员大概只能在一两部片中当主演。
片也是这样,一部片有可能是n多的明星参加演出,比如说建国大业,但是大多数片大概只有几个知名演员参加演出。

现在的要求是,设计数据库,使得给出演员的姓名,能查到TA演出过哪些片;给出片名,能查到这部片中哪些明星参加了演出。


要完成设计,目前我想出来的办法是再建立一张表,有2列,一列是StarID,另一列是MovieID。不过我觉得这样做很不方便。例如我现在要记录柳岩演出过《画壁》,我还要先查一下柳岩的ID,再查一下《画壁》的ID,最后到新建的表中输入这2个ID。
并且,我认为这样设计,还会造成很多重复的数据。假设建国大业有100个知名演员参加演出,那么就需要100条记录,200个数据项。


有木有更好的解决方案?

------解决方案--------------------
Movie表里加演员字段就可以了,对个演员用逗号隔开,查询用模糊查询
------解决方案--------------------
探讨
有一个数据库,现有两张表。
一张表是Star,有2列
StarID,演员的ID号
name,演员的姓名
另一张表是Movie,有2列
MovieID,影片的ID号
name,影片的名称
一个演员可能会出演过n多部电影,比如说刘德华,但是很多没名气的演员大概只能在一两部片中当主演。
片也是这样,一部片有可能是n多的明星参加演出,比如说建国大业,但是大多数片大概只有几个知名演员参加演出……

------解决方案--------------------
可以建立一个关联表。关联演员和电影表