数据库/应用程序中的实体的“整数”类型或“字符串”类型ID?

时间:2011-02-25 10:54:42

标签: java database types

我正在使用Java构建应用程序。我的数据库(Cassandra)仅将byte[]理解为数据。因此,我可以自由选择几种数据类型,用于各种实体ID,如userIds或contentIds。

分配这些ID的首选数据类型应该是什么。我期待顺序整数值作为应用程序上的用户的userIds。通过数据库设计(按计划),单个用户将在DB中拥有4行。为了区分这四行,我可以向userId添加一个额外的数字到最右边的数字,这将有助于我区分4行。

这看起来是一个很好的解决方案吗?或者首选String Ids?

感谢任何反馈..

3 个答案:

答案 0 :(得分:4)

肯定是integer个ID。我见过一些数据库使用字符串ID执行全表扫描的情况。对于id字段的长度可能还存在限制(例如,对于id使用编码的url是个坏主意)。除了id生成最好留给数据库,integers似乎是天生的选择。

答案 1 :(得分:1)

整数ID一般但......

为什么用户在一个表中有4行?

答案 2 :(得分:1)

在我看来,一切都取决于你需要在db中存储多少实体。整数类型具有有限的值集,如果您知道不会超过该限制,则使用Integer,否则请考虑使用Long或String类型。