我对数据库设计相当新,所以感谢您提供的所有输入,帮助我解决一些我设计数据库结构的问题。基本上我想在3个主表和第3个表之间建立多对多关系。我将尝试用一个例子来解释它。
假设我创建了表格来显示SCENE,ACTOR和ACTION之间的关系。 SCENE可以有多个ACTOR,每个ACTOR可以有多个ACTION。这是我到目前为止所做的:
有一个中间的ScenesActors表,它只列出了SceneID和ActorID(以及它自己的ID字段[SceneActorID]作为主键)。
然后你有ScenesActorsActions表,它有SceneActorID和ActionID(以及它自己的ID字段[SceneActorActionID]作为PK)。
ScenesActors表列出了每个actor都在哪些场景中。
ScenesActorsActions表列出了它们的作用。
场景 - <场景演员> - 演员
行动 - < ScenesActorsActions
但是,在我的数据库的设计中,说Actions已经与另一个名为ActionPossibilities的表有一对多的关系,其中每一行都是可能发生的行为(基本上可能会发生可能发生的动作) )。那你怎么能有效地创造上述关系呢?我遇到的问题是Actions表的主键用作ActionPossibilities表中的外键。在目前的设计下,这样的事情是可能的吗?
答案 0 :(得分:0)
只有四个表:场景,演员,动作和动作可能性。场景和Actor应该很简单:SceneID,SceneDescription等。与Actor相同。行动是你的主要表格。它应该有一个FK到SceneID,ActorID和ActionPossibilitiesID(不是相反)。从那里,您可以查询Action以获得所需的演员/场景/动作的任何组合。