对我的想法只字未提
从事一些基于网络的教育项目。为该项目创建问答系统。有一些逻辑上的困难,我无法弄清楚:
用户之间有教师和学生。每个学生在注册过程中都会选择一些课程。
我有5张桌子:users,courses,lessons,questions,answers。
可能有两种类型的问题:
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连接,基于idfrom_uid -从用户id (问题发送者id),连接此表与users,基于idto_uid - to user id (问题接收者id),基于id将此表与users连接。因此,我试图为这两个方面创造一些通用的解决方案:
但是有个问题
问题是
如果老师想给所有的听课者发问题怎么办?我已经有了user-course关系表,但是,目前我需要将一个接一个的用户id添加到questions from-to表中,以便他们能够接收问题。我不知道该如何设计这两种情况的表格:基于course-lesson组合的“大规模提问”和“用户-用户”类型的问题发布(教师向特定学生发送问题,反之亦然)。
有什么建议吗?
发布于 2012-07-25 19:58:13
一种可能是在to_uid中有一个特殊的代码,您的应用程序知道这些代码可以解释为“向所有用户显示”。当它遇到to_uid值为-1 (或您选择的任何内容)时,它会对所有听该课程的学生进行选择,并显示问题,就好像他们的in都单独列在to_uid中一样。根据应用程序的组织方式,您只需在少数地方实现此特殊检查。
发布于 2013-03-22 14:39:40
有点像这里描述的问题。看看建议的解决方案。
https://stackoverflow.com/questions/11657565
复制相似问题