2010-01-20 230 views
0

假设我想创建一个将情绪与活动相关联的数据库。每当我遇到新的情绪时,制作一张新桌子是否有意义,并且在桌子内部会说与所述情感有关的所有活动的ID,每个ID都是它自己的记录,还是有更好的方式去做?数据库关系

谢谢大家!

+1

六人打我给它。我会说答案已经达成共识。:-) – 2010-01-20 19:56:12

回答

3

我想你会想要一张名为Emotions的表格,它将包含情感的宇宙。然后,您需要一个名为Activities的表格,其中包含活动的全部内容。

然后你需要确定每个情绪是否可以有多个活动,并且如果每个活动可能有多个情绪。如果是这样,这就是所谓的多对多关联,并且您需要第三个表格,其中包含与每个活动关联的每种情绪。这第三个表通常被称为多对多关联表或映射表。

+0

不可能说得更好。 – thomaspaulb 2010-01-20 19:52:45

1

我不会建议为每种情绪都添加一张新表。有一个Activity表,一个Emotion表,一个Activity和Emotion之间的连接表,我将其称为ActivityEmotion,可能会更好。

1

最好有一个名为emotions(id,name)的表格,另一个名为activities(id,name)的表格,以及第三个关联这两个表格的表格。 (id_emotion,id_activity)。

0

对一组实体中的每一个创建新表通常不是一个好主意。设置你的表是这样的:

情绪 -Id 杂牌 -...其他信息

活动 -Id 杂牌 -...其他信息

ActivityEmotions -EmotionId -ActivityId

这样,ActivityEmotions包含所有的Emotion-Activity关系。

0

不创建新表。我会用3个表:

  • 一个用于工作之外的活动
  • 一个情感
  • 和一张桌子activity_to_relation(多对多关联)
2

这涉及到数据库规范化的主题。

表 '活动'::(ID,名)
表 '情绪':(ID,名)
表“activity2emotion:(您想设置的模式,看起来像这样什么emotion_id FK情绪。IDACTIVITY_ID FK的活动。ID