【问题标题】:Call Management System呼叫管理系统
【发布时间】:2012-09-17 07:22:04
【问题描述】:

我正在开发一个使用 PHP 和 MySQL 的呼叫管理系统。

我的数据库中有两张表,一张称为students,存储有关需要拨打电话的人员的信息,另一张称为Calls,仅记录拨打电话的时间。

现在,假设我有两个呼叫者登录,他们应该拨打电话。我需要向他们展示不同的呼叫者集,以确保没有两个登录的呼叫者看到相同的呼叫“学生”。由于我将使用学生表来填充我的呼叫者,如何实现?我是否应该重组我的数据库以允许这样的事情。

显示今天需要拨打的呼叫的标准是“未呼叫用户”、“在最后一次呼叫中给出特定呼叫时间的用户”。

呼叫者也可以被冻结,以防被呼叫的人只想与呼叫他的人交谈。如果这很难理解,我可以再详细一点。处理此类事情的最佳方法是什么?

【问题讨论】:

  • 听起来您首先要为每个学生分配一个呼叫者,然后每个呼叫者只能看到分配给他们的学生。那正确吗?如果是这样,也许添加(并以某种方式填充)students.caller 列就足够了?

标签: php mysql phone-call


【解决方案1】:

这里有两个解决方案,后者实现起来要复杂得多。让我知道是否应该详细说明任一解决方案。

  1. 登录后,将调用者的子集分配给登录的用户。当他完成调用者并执行“完成”该调用者的操作时,将新调用者分配给用户。这样,他将始终有 X 个呼叫者分配给他。
  2. 使用“长轮询”来始终查看哪些调用可用。因此,如果用户 A 点击呼叫者 1,则用户 B 将无法点击呼叫者 1,直到用户 A 停止使用呼叫者 1,或者用户 A 的会话超时。

如果我走在正确的轨道上,请告诉我,我会看看如何改进我的答案。

【讨论】: