我很难理解中间表的工作方式。
这是我的预期设计:我有一个'用户'表。每个用户都有自己的课程,' course_id'。课程的名称是在'课程'表,中间表是' users_courses'。
users:
user_id (pk)
users_courses:
user_id (pk)
course_id
courses:
course_id (pk)
course_name
这是正确的方法吗?这对我来说没有意义,因为我不能为同一个用户输入多个值,因为他要创建重复的密钥,因此他需要多个课程。 我如何使它工作?
答案 0 :(得分:2)
要仅允许用户和课程的一个组合,但允许用户参加许多课程,您必须将user_id
和course_id
放在一个唯一的密钥中。
create table users_courses
(
user_id int,
course_id int,
unique index u_idx (user_id, course_id)
)