在我的系统中,我有一个实体(销售)可以为具有特定邮政编码的人提供服务。 因此,每个销售都可以将数千个邮政编码绑定到他的帐户。
我需要开发REST API,以便加载和编辑销售邮政编码列表。
基本上我有两个选择:
1)创建2个资源:Sales和SalesZip。提交销售数据,然后为每个支持的邮政编码汇总SalesZip记录。
2)创建销售实体,并加载支持的邮政编码列表,如下所示:
{
id : 1,
name : "John",
zip : [
"90231",
"12341",
...
]
}
并提交类似数组的邮政编码:
zip[]=90231,12341
两种方式都有一些缺点。
如果使用第一个选项,我可能需要提交太多单独的HTTP请求。 如果使用第二个选项,我可能需要发送相当大的PUT / POST请求。
我应该使用哪个选项? 设计此类功能的最佳实践是什么?
答案 0 :(得分:1)
什么是“非常大”?
粗略估计,如果每个字符都是2个字节,并且您的邮政编码有5个字符,则每个代码为10个字节。假设US has 41,741 ZIP codes,在美国最糟糕的情况下,销售人员在全国销售,需要大约417,410字节或407.6千字节的有效载荷。
平均而言,销售员属于多少邮政编码?它是如何分布的?您多久收到一次这些要求?你可能会发现它毕竟不是那么糟糕。
没有足够的数据来做出决定,但似乎第二种选择并不差。