-1

我正在使用 myphpadmin

表 1

                   id exam_name         month  year
                   ------------------------------------
                    1 universityexam   january  2013

这里exam_name,月份和年份是主键

表 2

                   id exam_name                     course_name
                   ----------------------------------------------

                   1  universityexam january 2013     bsc

这里exam_name是表1所有列的外键

4

1 回答 1

0

我想我知道问题出在哪里,但如果您缺乏细节导致误解,请原谅。

您似乎想要做的是链接这两个表,但是您以错误的方式进行操作。您应该使用 table1 中的 id 作为 table2 中的 FK。您正在做的是不必要地复制数据。

通过这种方式,可以将一门考试链接到多门课程,或者将一门课程链接到多门考试。

我会这样设计数据库:

create table courses (degree_id int,degree_name varchar(128))
create table exam (exam_id int,exam_name varchar(128))
create table exam_date(exam_date_id SERIAL,exam_id int,date timestamp)
create table exam_date_course(edc_id SERIAL,exam_date_id BIGINT,degree_id INT)

这使您可以非常自由地将考试与日期、课程与考试等联系起来,几乎没有数据重复(参见 google 上的第 4 范式)

于 2013-08-02T08:10:22.017 回答