我正在建立一个网站,教师可以在该网站上载课程,然后发布。我正在计划数据库,我的脑海中有几个问题。请考虑以下表格:

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)


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


我要检查特定categorylesson
我想检查lessons是否属于特定的category


如果将category_id作为外键放在lessons表中可以吗?这样,我就能通过加入表来在类别中lessons。对于反向关系,我也可以通过选择category来选择course

请帮帮我。提前致谢。

最佳答案

如果课程有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)
);

09-17 20:13