首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表结构,用于将消息关联到一组特定用户或所有用户。

表结构,用于将消息关联到一组特定用户或所有用户。
EN

Stack Overflow用户
提问于 2012-07-25 19:54:06
回答 2查看 174关注 0票数 1

对我的想法只字未提

从事一些基于网络的教育项目。为该项目创建问答系统。有一些逻辑上的困难,我无法弄清楚:

用户之间有教师和学生。每个学生在注册过程中都会选择一些课程。

我有5张桌子:userscourseslessonsquestionsanswers

可能有两种类型的问题:

  1. User为基础。例如,当老师想把问题发送给特定的用户时,反之亦然(用户也可以向老师发问)。

  1. 基于Course-lesson组合的。对于前教师来说,老师想要向所有的课程听者发布问题,这些问题都是根据他们目前所上的课。

我所做的

我创建了questions from-to (qft)表

代码语言:javascript
复制
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 - to user id (问题接收者id),基于id将此表与users连接。

因此,我试图为这两个方面创造一些通用的解决方案:

  • 学生和老师这样他们就可以互相提问。ok

  • 老师可以向一些用户发布具体的问题。ok

但是有个问题

问题是

如果老师想给所有的听课者发问题怎么办?我已经有了user-course关系表,但是,目前我需要将一个接一个的用户id添加到questions from-to表中,以便他们能够接收问题。我不知道该如何设计这两种情况的表格:基于course-lesson组合的“大规模提问”和“用户-用户”类型的问题发布(教师向特定学生发送问题,反之亦然)。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-25 19:58:13

一种可能是在to_uid中有一个特殊的代码,您的应用程序知道这些代码可以解释为“向所有用户显示”。当它遇到to_uid值为-1 (或您选择的任何内容)时,它会对所有听该课程的学生进行选择,并显示问题,就好像他们的in都单独列在to_uid中一样。根据应用程序的组织方式,您只需在少数地方实现此特殊检查。

票数 1
EN

Stack Overflow用户

发布于 2013-03-22 14:39:40

有点像这里描述的问题。看看建议的解决方案。

Messaging System

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11657565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档