我有一张Questions
看起来像这样的桌子
如您所见,有 2 个 id 行几乎相同:id
, question_id
. id
- 是自动递增的,每个问题的唯一 ID,并且question_id
- 例如,课程 1 第 1 课有 5 个问题,例如:问题 1、2、3、4、5。课程 1 第 2 课有 3 个问题:1、2、 3等。换句话说,它就像每个唯一组合的自动增量course_id
字段lesson_id
。我决定手动添加question_id
基于course_id
,lesson_id
以保持数据库结构的可读性并且不弄乱数据库,并在course-lesson-question unique id
值之间添加一堆关联表。
第一个问题是
您如何看待,这是一个好的解决方案吗?你会如何设计这个数据库?
问题是,当我想用 given 插入新问题时course_id
,lesson_id
该id
字段将自动递增,但我得到了
第二个问题
如何获得question_id
基于唯一组合course_id
的最后一列值。lesson_id
例如,如果第 1 课第 2 课有 3 个问题:1、2、3,并且我想添加第 4 个问题(正如我所说,在当前的数据库设计中我question_id
手动插入值),我怎么知道,最后一个问题当然第 1 课第 2 课是第 3 课,并插入新问题 (last_number=3)++=4?
更新
情况有点复杂,但我会尝试解释:
它是在线教程网站。有不同的课程,每门课程都有很多课程。现在我正在设计问答部分,教师发布问题,用户得到专门的问题。
现在,该表questions
专用于课程>基于课程的问题。
question_from_to_assoc
- 用于在问题作者和接收者用户之间创建关联。例如 admin (id=.) 向某个 id=5 的用户发送问题。
qa_assoc
- 问答关联表。