1

私の考えについて一言

Web ベースの教育プロジェクトに取り組んでいます。このプロジェクトの質問応答システムを作成します。私が理解できないいくつかの論理的な困難があります:

ユーザーの間には教師と生徒がいます。すべての学生は、サインアップ時にいくつかのコースを選択します。

userscourseslessons、 、questionsの5 つのテーブルがありanswersます。

質問には次の 2 種類があります。

  1. Userベース。たとえば、教師が特定のユーザーに質問を送信したい場合、またはその逆の場合 (ユーザーは教師にも質問を投稿できます)。

  2. 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-course1 つずつユーザー ID をテーブルに追加する必要があります。questions from-to組み合わせに基づく「大量質問」とcourse-lesson「ユーザー間」タイプの質問投稿(教師が特定の生徒に質問を送信し、その逆)の両方の状況でこのテーブルをどのように設計できるかわかりません。

助言がありますか?

4

2 に答える 2

1

1 つの可能性はto_uid、アプリケーションが「すべてのユーザーに表示する」と解釈することを認識している特別なコードを持つことです。to_uid-1 (または選択したもの)に遭遇すると、そのコースを聞いているすべての学生を選択し、あたかも ID が にすべて個別にリストされているかのように質問を表示しますto_uid。アプリケーションの編成方法によっては、この特別なチェックを少数の場所に実装するだけで済みます。

于 2012-07-25T19:58:13.680 に答える
0

ここで説明されている問題に少し似ています。提案された解決策を見てください。

メッセージング システム

于 2013-03-22T14:39:40.417 に答える