我建立了一个网站,可以一次旋转一个菜单显示屏幕。为了实现这一点,每次用户启动屏幕活动时,每个屏幕都被插入到数据库中以跟踪它。
根据用户的数量以及他们发起活动的频率,表格的 id 字段最终会变得非常高。每次启动活动时,都会删除该特定活动和用户的旧行并重新开始。当然,id 值不断增加。
id 进入 5、6、7 位或更高位是否常见?这真的很重要吗?
如果是这样,如何将其重置回 1。或者我需要这样做吗?
我建立了一个网站,可以一次旋转一个菜单显示屏幕。为了实现这一点,每次用户启动屏幕活动时,每个屏幕都被插入到数据库中以跟踪它。
根据用户的数量以及他们发起活动的频率,表格的 id 字段最终会变得非常高。每次启动活动时,都会删除该特定活动和用户的旧行并重新开始。当然,id 值不断增加。
id 进入 5、6、7 位或更高位是否常见?这真的很重要吗?
如果是这样,如何将其重置回 1。或者我需要这样做吗?
嗯,我从来没有想过这样做。有带有某种显示顺序的活动表。在您的用户表中添加一列,其中首先显示活动 ID 和日期。您可以使用登录时间。然后是关于何时旋转以及旋转什么的一些逻辑。
我不知道您使用的是什么数据库,也没有说该列是什么数据类型。可以选择一个太窄的数据类型,比如 tinyint,它在 255 处出现(如果您使用的是 MS-SQL Server)。这是一个容易达到的极限。如果您快速创建数据,Smallint 32,700 可能会在很长一段时间后达到。int 太大了,我在现实世界的场景中从未达到极限 2,147,483,647。我想如果你在恶性通货膨胀经济或高精度工程工作中从事会计工作。Big int 是如此之大,你会在几个生命周期内用完数字:9,223,372,036,854,775,807。因此,当您使用 bigint 时,您可能只是在浪费磁盘空间。
希望您的 UI 不会将表的主键暴露给用户,因为如果他们希望更改主键,更改主键会很麻烦,因为它会级联到所有相关的表。所以保密,也不要自己看,它的位数是装饰性的,真正重要的是数据类型占用了多少空间,并且对于大多数数字数据类型是固定的。