Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.1k views
in Technique[技术] by (71.8m points)

数据向前插入排队,怎么设计表比较好?

问题描述

所有人只排一条队,可向前多个插入

1. 第1车队50人来了,先排队等候,不上车 顺序:1~50
2. 第2车队50人接着也来,跟在第1车队后面等候,51~101
3. 第3车队30人来了,因为是特殊队伍,要优先上车

问题出现的环境背景及自己尝试过哪些方法

怎么设计让1,2车队的让的位置靠后让第3车队让先上车呢?

我现在想法:

* 1,2车队序号都+30,相当于每个人靠后都后退30个的位置来,但这样后期操作到的数据太多
* 第3车队的序号从 -30 ~0,这样感觉也不是很理?

上面只是举例,可能还有第4车队,比第3车队优先及更高,或者过程中那个人肚子痛上厕所了,就要重新从最后面开始排了

相关代码

粘贴代码文本(请勿用截图)

你期待的结果是什么?实际看到的错误信息又是什么?

合理的设计排序索引,可向前多个插入


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
CREATE TABLE `sort` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
  `uid` int(11) NOT NULL COMMENT 'UID',
  `status` tinyint(255) NOT NULL DEFAULT '' COMMENT '位置状态:1正常,2放弃',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `update_time` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `sort` (`sort`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
SELECT * FROM `sort` WHERE `status` = 0 ORDER BY `sort` DESC `id` ASC

强行加入的以更大的 sort,只要控制sort保持最大即可


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...