1

通过亚马逊 MWS API 提交提要时,它会返回一个提要提交 ID,其类型为string,而它返回的所有数字似乎都是 type int

问题:他们拥有它是否有原因,string并且始终将此值转换为是否安全int(我的意思是我可以确定他们不会在该 ID 中添加一个字母,例如“123abc”)。

问题的原因:如何将值存储在数据库中:char()varchar()int?我想我们可以期望这个 ID 最终有更多的长度,因为 ID 是递增的。这样char()就行不通了。接下来,varchar(how_long?) - 当前 ID 为 10 个字符长 - 为它添加一些额外的空间(比如varchar(15))?或者也许只是使用int- 会更快地搜索并容纳 ID,直到它增长到bigint(如果有的话),或者只是让它成为bigint最终的?

这就是两难境地。

4

1 回答 1

1

是否有理由将其作为字符串使用,并且始终将此值转换为 int 是否安全

int除非您打算在数学上使用它,否则我不会将此值转换为。

(我的意思是我可以确定他们不会在那个 ID 上添加一个字母,比如“123abc”)。

你永远无法确定这一点。这是一个标识符,将来他们完全有可能开始向其中添加非数字字符。

我不是数据库专家,所以我不能真正建议您在某些情况下最好的类型是什么。有一件事是正确的,在您对应用程序进行基准测试之前,您将无法判断哪个更快或更高效。

我的建议是将值存储为 a varchar(25),这将为您提供充足的未来空间。我还建议您更多地关注应用程序的可维护性,而不是性能或效率。

于 2012-02-01T08:45:36.743 回答