java idgenerator_java-随机ID生成器,映射与同列

博客讨论为向客户隐藏实体确切ID,实现分配唯一随机ID的解决方案。提出是使用映射,还是直接将随机ID分配给主键列的问题,并给出两种情况的表创建示例,认为直接分配更方便,且两种情况都需编写随机ID生成器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们希望有一些实体向客户隐藏其确切ID-主要原因是,我们不希望客户知道数据库中有多少实体.

因此,我正在实现一种分配随机ID(必须唯一)的解决方案.换句话说,不是使用唯一的序列号,而是要使用唯一的非序列随机数解决方案.

我的问题是,知道这里的一些用户可能有类似问题的经验,我应该使用映射还是将随机ID分配给主键列?

例如

CREATE TABLE IF NOT EXISTS `test` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`somethingElse` varchar(255) NOT NULL,

PRIMARY KEY (`id`)

)

CREATE TABLE IF NOT EXISTS `map` (

`id` int(10) unsigned NOT NULL,

/* Foreign Key to test table */

`parent` int(11) NOT NULL,

PRIMARY KEY (`id`),

KEY `parent` (`parent`)

)

VS.

CREATE TABLE IF NOT EXISTS `test` (

/* Assign random ID here */

`id` int(10) unsigned NOT NULL,

`somethingElse` varchar(255) NOT NULL

PRIMARY KEY (`id`)

)

对我来说,后者变得更加方便,因为我不必维护地图,也不必自定义DAO /应用程序以使用映射的ID(或内部的确切ID).对于这两种情况,我都必须编写自己的随机ID生成器.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值