【发布时间】:2019-03-26 21:20:28
【问题描述】:
我想在 SQL 中为我的用户分配一个课程列表。用户可能有不同数量的课程。我环顾四周,并没有真正找到一个好的方法来做到这一点。我在设计数据库方面没有很多经验。 每个用户只是具有唯一用户标识的表上的一行信息。 列表中的每门课程都需要包含当前成绩、讲师 ID 和所属用户 ID 的字段。也许更多。 我试图避免将其全部放在带有一堆插槽甚至是空字段的一行中。有没有办法将整个表分配给用户?这样每一行都可以是一门课程?
【问题讨论】:
-
你能展示一下你目前的结构吗?
-
我认为您只需要几个表格:用户、课程、讲师、成绩和订阅(当用户订阅课程时)等。只要有指向您添加的另一个表格的链接一个外键。因此,如果用户获得成绩,则成绩表中的外键将是“userId”和“courseId”。
-
这对于 SO 来说实在是太宽泛和离题了,在 dba.stackexchange.com 上可能会更好。但您可能需要一个用户表、一个课程表和一个数据透视表,它们将在两者之间创建多对多关系。
-
无论你做什么,不要在你的用户表中创建一个课程列并用逗号分隔值填充它。
标签: php mysql sql database web-development-server