代码之家  ›  专栏  ›  技术社区  ›  Rebbeca

MySQL主键和外键约束的形成混乱

  •  0
  • Rebbeca  · 技术社区  · 7 年前

    我正在建立一个网站,老师们可以上传他们的课程,然后发布。我正在规划数据库,我脑子里有几个问题。考虑下表:

    instructors(id(PK), fullname, email, password, created, updated)
    categories(id(PK), title, description, created, updated)
    courses(id(PK), cat_id(FK), instructor_id(FK), title, description, created, updated)
    lessons(id(PK), course_id(FK), title, description, duration, created, updated)
    

    我已经建立了上述表格之间的基本关系。现在的问题是:

    • 我想检查一下 category 特定的 lesson .
    • 我想查一下 lessons 类别 .

    category_id 作为外键输入 经验教训 桌子这样我就能 通过连接表在类别中。对于反向关系,我还可以选择 类别 通过选择 course

    1 回复  |  直到 7 年前
        1
  •  1
  •   Gordon Linoff    7 年前

    如果一个课程有0或1个“类别”,那么您可以将 category_id 在里面 lessons . 这是恰当和正确的。

    create table lesson_categories (
        lesson_id . . .,
        category_id . . .,
        constraint fk_lesson_categories_lesson foreign key (lesson_id) references lessons(id),
        constraint fk_lesson_categories_category foreign key (category_id) references categories(id)
    );