我想创建一个在线广告牌系统,每个人都可以将主题发布为我的项目。
我尝试使用SQL设计数据库来存储每个主题的信息,包括主题的id作为主键。
首先,我使用带有自动增量的整数数据类型设计id,因为我认为这是最简单的方法。然后我想到了它并发现整数有限制(数字可能很高但它就在那里),所以我在这里找到另一种方法。
现在我想到一些伪随机算法,或者使用主题名称的哈希,但仍然不清楚。
我也在这里找到了研究的GUID,但不确定是否可以使用它。
我希望你建议我如何处理整数的限制大小作为主键,或建议我任何关键词供我进一步研究。
答案 0 :(得分:1)
这个答案假定MySQL / MariaDB,因为它使用了术语"自动增量"对于此类列(与使用identity
或serial
的其他数据库相对)。
如果int
不够大,您可以使用bigint
。
虽然我可能会认为您不太可能超过int
的阈值(适用于许多应用程序),bigint
需要付出很大的努力才能让您和您的计算机长时间停留,长时间超过最大值。
documentation中解释了这一点。
答案 1 :(得分:-1)
使用int,SQL Server支持的最大值为2,147,483,647。
为了完整起见,我还要补充一点,另一个选择是将列的数据类型更改为bigint(最大值9,223,372,036,854,775,807 - 这将允许您连续近30万年每秒插入一百万行)。 或者如果你担心你会溢出,你可以考虑使用十进制(38,0) - 这里的最大值是一个由38个9组成的数字(这将允许你保持同样的速度,高达31,709,791,983,764,586,504,312,531年)。