我正在开发一个Web服务,我希望得到以下输出(部分已经有效)作为API请求的结果。
请求
我构建了一个接受以下请求的API:
POST
http://server.com/v1/requests/"
在邮件正文中发送一些参数。
响应
Status-Code: 200 OK
{
"transaction_id": "12345",
"status": "processing"
}
表格:请求
这会在名为requests
的表中在服务器上创建新请求。该表由字段(简化)组成:
transaction_id -> String
status -> Int
我为系统中的用户提供了另一个表
表:用户
此表包含有关已注册系统中用户的信息。
user_id -> String
LatLng -> Float
搜索请求位置附近的用户
我的算法如下:
当我向特定请求发出请求时,我将创建以下响应:
响应
{
"transaction_id": "12345",
"responders": [
{
"user_id": "R001",
"dispatch_time": "1234"
},
{
"user_id": "R002",
"dispatch_time": "1235"
},
{
"user_id": "R003",
"dispatch_time": "1236"
}],
}
这个工作流程对我来说很清楚。对我来说完全不清楚的是现在我需要如何实现它有效的表结构/算法。所以我的问题是:
requests
表格中添加其他字段,每个字段都包含user_id
。我会想到这样的事情: |transaction_id|status|user_id_1|user_id_2|user_id_3|
|12345 |1 |U100 |U200 |U300|
然后我会为响应请求的每个用户更新相同的表条目,最后在表中只有一个条目。
我想到的另一种方式是:
|transaction_id|status|user_id|
|12345 |1 |U100
|12345 |1 |U200
|12345 |1 |U300
这对我来说似乎有些奇怪。难道我最后用数据炸毁整个表格,因为那时数据量是3倍?它是如何以有效的方式完成的?
那么接收我希望的输出的正确算法/结构是什么?