我正在尝试设计一个允许将注册用户添加到队列的移动应用程序。从 Web 服务请求一个号码,然后以存储的号码进行响应。下一个请求用户将获得连续号码。
我使用 C# 作为服务器端语言,使用 mySQL 作为用户数据库。
客户端发送一个 HTTP POST 请求,其中“Authentication”标头是“username:password”,“x-action”自定义标头是“joinQueue”。并在队列中获取他的号码。稍后,他可以使用“checkQueueStatus”操作轮询 Web 服务,以查看他现在在队列中的位置。
服务器端执行以下操作:
- 访问用户数据库并检查用户名:密码是否存在(正确)。
- 发送 last_number+1 并更新 HTTP 响应正文。
- 在队列中存储用户 ID 123123 为 31 的信息。
- 一旦先入队列完成服务,更新所有用户的队列。
作为网络服务的菜鸟,我不太确定如何设计服务器端部分。具体来说,使用以下信息创建一个不同的表(队列表)是否有意义:
userID | placeInQueue
301452 1
444592 2
612712 3
042125 4
并且管理员客户端现在可以发送带有“serviceFirstUser”操作的 HTTP 请求,这将减少队列中每个人的 placeInQueue?
这是一个合理的设计吗?
谢谢。