【问题标题】:Many to many relationship in my database design我的数据库设计中的多对多关系
【发布时间】:2015-04-13 19:00:40
【问题描述】:

到目前为止,我已经完成了一个非常简单的数据库设计。我现在面临的一个问题是以下场景。

一个学生可以有多个科目,一个科目可以被多个学生选修。我无法加入以下表格

1.Student
2.Student_Subject
3.Subject

我在哪里搞错了...........

【问题讨论】:

  • 我认为您必须将Student>ID 与Student_Subject>St_ID 和Subject>ID 与Student_Subject>Sub_ID 连接。
  • 您说学生表中的 ID 应该连接到 Student_Subject 中的 St_ID。为什么学生表中的 St_ID 不应该与 Student_Subject 表中的 St-ID 映射我这样做了,但访问不允许这样做?跨度>
  • 我会发布一个答案以尽可能清楚地说明。

标签: database-design ms-access-2007 database-schema


【解决方案1】:

您必须将Student>ID 与Student_Subject>St_ID 和Subject>ID 与Student_Subject>Sub_ID 连接。

您需要这样做,因为Student 表和Subject 表之间的关系是多对多的。并且您必须将其拆分为 2 个关系,一对多和多对一。这是建立SQL 关系的主要规则之一。

在这种情况下,您将不需要Student>st_Id,因为Student>Id 将存储学生的ID。与Subject>Sub_id 相同。

现在,当学生有很多课程时,您需要向Student_Subject 添加一个新字段,学生的 ID 为St_ID,课程的 ID 为Sub_ID。对于有许多学生的课程也会发生同样的情况。

在这两种情况下,您只会将字段添加到Student_Subject 表中。

您可以通过 Google 搜索更多关于 SQL 关系的信息。

【讨论】:

    猜你喜欢
    • 2011-05-01
    • 2012-09-30
    • 1970-01-01
    • 2011-04-13
    • 2011-05-03
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多