私の考えについて一言
Web ベースの教育プロジェクトに取り組んでいます。このプロジェクトの質問応答システムを作成します。私が理解できないいくつかの論理的な困難があります:
ユーザーの間には教師と生徒がいます。すべての学生は、サインアップ時にいくつかのコースを選択します。
users
、courses
、lessons
、 、questions
の5 つのテーブルがありanswers
ます。
質問には次の 2 種類があります。
User
ベース。たとえば、教師が特定のユーザーに質問を送信したい場合、またはその逆の場合 (ユーザーは教師にも質問を投稿できます)。Course-lesson
コンビネーションベース。たとえば、教師は、現在参加しているレッスンに基づいてすべてのコース リスナーに質問を投稿したいと考えています。
私がしたこと
questions from-to
(qft) テーブルを作成しました
CREATE TABLE `questions from-to` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`qid` int(11) unsigned NOT NULL,
`from_uid` int(11) unsigned NOT NULL,
`to_uid` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `qft.from_uid_users.id` (`from_uid`),
KEY `qft.to_uid_users.id` (`to_uid`),
KEY `qft.qid_qe.id` (`qid`),
CONSTRAINT `qft.from_uid_users.id` FOREIGN KEY (`from_uid`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `qft.qid_qe.id` FOREIGN KEY (`qid`) REFERENCES `questions_and_exercises` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `qft.to_uid_users.id` FOREIGN KEY (`to_uid`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
そのように見える
qid
- は質問 ID で、このテーブルをquestions
に基づいて接続しますid
from_uid
- ユーザー ID (質問送信者 ID) から、このテーブルをusers
に基づいて接続しますid
to_uid
- ユーザー ID (質問受信者 ID) に、このテーブルをusers
に基づいて接続しますid
だから私は両方のためのいくつかの普遍的なソリューションを作成しようとしました:
生徒と教師が互いに質問を投稿できるようにします。わかった
教師は、一部のユーザーに特定の質問を投稿できます。わかった
しかし問題がある
問題は
教師がすべてのコース受講者に質問を投稿したい場合はどうすればよいですか? 私はすでに関係テーブルを持っていますが、現在、質問を受け取ることができるように、user-course
1 つずつユーザー ID をテーブルに追加する必要があります。questions from-to
組み合わせに基づく「大量質問」とcourse-lesson
「ユーザー間」タイプの質問投稿(教師が特定の生徒に質問を送信し、その逆)の両方の状況でこのテーブルをどのように設計できるかわかりません。
助言がありますか?