我应该将CUSIP定义为什么数据库类型?

时间:2012-12-03 18:07:24

标签: sql sql-server finance

如果CUSIP定义为

  

CUSIP是一个9个字符的字母数字代码,用于识别北美金融证券,以促进交易清算和结算。

那么我应该在SQL Server数据库中设置哪种类型?我需要考虑哪些因素?

2 个答案:

答案 0 :(得分:5)

如果我理解正确,这是一个固定长度,对吧?总是9个字符 - 从不更多,从不更少?

在这种情况下,我会使用 CHAR(9) ,因为使用带有可变长度的VARCHAR对您没有任何好处,并且会带来一些开销。由于它是北美标准,我怀疑你必须输入西里尔字母,阿拉伯字母,希伯来字母或远东字符,所以CHAR(非Unicode,每个字符1个字节)就足够了。

它是字母数字代码的事实立即排除了所有数值数据类型。

答案 1 :(得分:3)

最重要的考虑因素是CUSIPS可以而且确实会改变。我将cusip存储为char(9),但一定要考虑到它们可能会改变,所以不要错误地将它们作为数据库中的唯一键。