2012-01-26 164 views
1

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

问题:是有一个原因,他们把它当作string并且是安全的这个值总是转换为int(我的意思是我可以肯定他们不会信添加到该ID,如“123ABC”) 。

原因的问题:如何存储在数据库中的值:char()varchar()int?我想我们可以预计这个ID最终会有更多的长度,因为ID会增加。因此char()将不起作用。接下来,varchar(how_long?) - 目前ID是10个字符长 - 为它增加一些额外空间(如varchar(15))?或者,也许只是使用int - 搜索时会更快并且容纳ID,直到它变为bigint(如果有的话),或者只是将其设置为bigint并最终?

这是两难。

回答

1

在那里他们有它的字符串,是安全的总是转换这个值为int

我不会,除非你打算数学使用它这个值转换为int一个原因。

(我的意思是我可以确定他们不会像“123abc”那样给该ID添加一个字母)。

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

我不是数据库专家,所以我不能真正告诉你什么是某些场景的最佳类型。有一件事情会成真的是,除非您对应用程序进行基准测试,否则您将无法判断哪个更快或更高效。

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

+0

得出了同样的结论。你不会在他们的文档中找到任何可以告诉你(1)它是否真的是整数或者(2)它是否会改变的东西。我猜他们是为了灵活性/ NoSQL原因这么做的。 – Garvin