【问题标题】:prevent phpmyadmin redunduncy of data防止phpmyadmin数据冗余
【发布时间】:2013-03-09 12:25:50
【问题描述】:

我要创建一个注册系统,我的数据库中有以下表格:

Subject //Primary key: Subj_no
Student //Primary key: Stdnt_no
Subject_Student //Primary key: Subj_Stdnt_no

Subject_Student 与 Subject 和 Student 的主键相关(索引)。

现在我的问题是: 如何防止数据库再次建立相同的关系? 示例> 例如,我在 Subject_Student 中有以下行:

Subj_Stdnt_no | Subject |  Student 
      1       |    1    |     2
      2       |    1    |     6
      3       |    1    |     2       <------How can I prevent that? It's redundant.

【问题讨论】:

    标签: php html database phpmyadmin redundancy


    【解决方案1】:

    PhpMyAdmin 是 mysql 的查询工具,不是数据库。

    您需要组合 (Student, Subject) UNIQUE

    【讨论】:

    • 非常感谢您抽出宝贵时间回复,但我还是一名学生,目前是数据库新手。我听说过复合键,但不确定。先生,如果不是太多,您能进一步解释我该怎么做吗?通过“您需要使(学生,主题)的组合独一无二。”你的意思是让他们两个主键?并感谢您清除 PhpMyAdmin 是什么 :)
    • 复合键正在组合两个字段。再加上独特的条件,您将无法两次插入相同的组合。可以有 (1, 1), (1, 2), (2, 1), (2, 2),但不能有 (1, 1), (1, 1)。跨度>
    【解决方案2】:

    在@Femaref 的帮助下,我设法回答了我自己的问题 我用过:ALTER TABLE Subject_Student ADD UNIQUE (Subject,Student);

    【讨论】: