SQL添加一个int字段,并在同一列中基于该数字递增其他字段

辛菲拉

我需要一些有关SQL设计思想的启发,我才刚刚开始学习SQL。我的知识非常有限,所以请耐心等待。

我有一个Quiz应用程序,在SQL中,有一整行,与每个Quiz问题和答案相对应。这是非常基本的,并且设计得不是很好。但是这里。

像这样

在此处输入图片说明

我的要求是使用户能够在测验列表中的任何位置添加问题。因此,例如,如果用户想在数字2处添加新问题,则用户可以单击“添加问题”在位置2,它将向数据库添加新记录并刷新页面以查看问题是否已重新排序和编号。

我的应用程序根据类别拉回数据。因此,例如,如果用户想要在我的应用程序中查看历史记录类别。他们单击一个按钮,并显示标题列表和下面的按钮。

在此处输入图片说明

如您所见..我的桌子还没有准备好..任何人都可以给我一些技巧,以帮助我了解如何在数据库中实现这一目标。

非常感谢。

乔恩·P

您需要ID的链接列表和类别的外部表(已经处理了粘性位)。

当插入新行时,使用了一个存储的proc,它执行以下操作:

update QuizTable set position = position + 1 where position >= 2;
insert into QuizTable(position, question) values (2, "new question");

如果您的表需要并发更新,那么这当然是行不通的!(因为如果一位用户在更新位置2时更新位置8,则可能会被锁定。

对于多用户系统,安全地执行此操作的唯一方法是实现next / prior列(或将它们放在单独的数据库表中)。此选项是一项艰巨的任务,您应该避免使用它。

您的插入存储过程如下所示:

declare @myNewId = 94;
declare @position2Id = 50;
insert into QuizTable(id, question)
values (@myNewId, "my new question");

declare @next, @prior
select @next = next, @prior = prior from QuizTable where id = @myNewId;

update QuizTable set next = @myNewId where id = prior;
update QuizTable set prior = @myNewId where id = @position2Id

然后,您的列表将由动态计算的id和自引用表扫描组成,其中id 1 =以前的IS NULL id 2 = id1.next

刚刚为您找到了此链接:SQL中的链接列表

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在猫鼬模式中创建一个字段,该字段引用同一文档中的其他字段

SQL Server-从同一视图表中的其他字段创建值一个字段

添加一个新列,该列根据现有字段值自动递增

添加一个从其他字段复制数据的字段

将.csv文件导入PostgreSQL并在第一列中添加一个自动递增的ID

redshift 创建一个基于其他列的值的字段

基于其他字段的唯一值的 Qlik Sense 一个字段的总和

在每个文档中添加一个新字段,并在mongodb中为同一文档的另一个字段赋值

如何遍历行并基于同一行中其他字段的内容查询特定字段?

如何创建JSONField一个Django模型,采用同一个表中其他字段的值?

根据同一文件相应行中的另一个字段在UNIX文件中添加其他文件

如何获取ID并在ror中基于该ID显示下一个字段?

创建一个“其他”字段

如何基于其他字段提取csv文件中一个字段的值?

在 firebase 中的数组中添加一个字段而不删除 firebase 中的其他字段

在另一个文本字段中输入数字后,以html格式显示其他文本字段

SQL创建表,该表基于另一列自动递增一列

识别pyspark中列值的第一个出现的对象,然后基于该值递增另一列

在我的数据框中添加一个计数器列,该列根据温度值递增(在另一列中)

jq:将字段添加到嵌套结构的深层集合中,该嵌套结构是从同一级别的其他字段计算得出的

从其他模型的字段创建一个计算字段

Django ModelField在添加新字段时将默认值添加到基于同一模型中的另一个字段

如何将值插入一列并在 Oracle 表中的该列的同一时间引用前一个值?

如果另一个表中不存在该值,如何将列中的字段值更改为“其他”?

Oracle sql Join表基于一个表,该表在另一表的字段中包含单词

MongoDB:基于同一对象上的其他字段,将字段添加到数组中的所有对象吗?

如何将值添加到odoo many2many字段列中,取决于同一个字段中的另一列?

Django序列化器字段值基于同一序列化器中的其他字段

在MySQL的一列中搜索一个名称,并在其他列中返回其所有相关属性(一对多)