MySQL多个主要在一个表中,外键到另一个表

时间:2013-08-02 05:34:01

标签: php mysql codeigniter

我正在使用myphpadmin

tabel 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的所有列的外键

1 个答案:

答案 0 :(得分: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个普通表格)