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