Database 数据库设计-存储序列
想象一下:有一个“配方”表和一个“配方步骤”表。其想法是允许在不同的配方中重复使用不同的配方步骤。我遇到的问题与以下事实有关:在配方上下文中,配方步骤的显示顺序很重要,即使它不遵循配方步骤表主键顺序,因为此顺序将由用户设置 我想做一些类似的事情: recipe-step table: id | stepName | stepDescription ------------------------------- 1 | step1 | description1 2 | step2 | description2 3 | step3 | description3 ... recipe table: recipeId | step --------------- 1 | 1 1 | 2 1 | 3 ... 配方步骤表: id |步骤名称|步骤描述 ------------------------------- 1 |步骤1 |说明1 2 |步骤2 |说明2 3 |步骤3 |说明3 ... 配方表: 往复步 --------------- 1 | 1 1 | 2 1 | 3 ... 这样,步骤在步骤列中显示的顺序就是我需要维护的顺序 我对这种方法的关注是:Database 数据库设计-存储序列,database,sqlite,sequence,Database,Sqlite,Sequence,想象一下:有一个“配方”表和一个“配方步骤”表。其想法是允许在不同的配方中重复使用不同的配方步骤。我遇到的问题与以下事实有关:在配方上下文中,配方步骤的显示顺序很重要,即使它不遵循配方步骤表主键顺序,因为此顺序将由用户设置 我想做一些类似的事情: recipe-step table: id | stepName | stepDescription ------------------------------- 1 | step1 | description1 2 | step2
- 如果必须在两个现有步骤之间添加新步骤,如何查询它?如果我只需要切换序列中已有的两个步骤的顺序,该怎么办
- 如何确保订单保持一致性?如果我只是在配方表中插入或更新一些内容,它会在表的末尾弹出,对吗
recipe
表中:
recipeId | step | stepOrder
---------------------------
1 | 1 | 1
1 | 2 | 2
1 | 3 | 3
2 | 4 | 1
2 | 2 | 2
注:
recipe
表存储配方和步骤之间的关系,因此应称之为recipe-step
。
配方步骤
表独立于配方,因此应称之为步骤
。
您可能需要一个表来存储独立于步骤的配方信息;此表应称为
recipe
,但如何处理需要在两个现有步骤之间添加新步骤的情况?这意味着我必须再次更改接下来所有步骤的步骤顺序?因此,我实际上会更新与某个配方相关的所有步骤,即使我只需要添加一个。难道没有其他更简单的选择吗?我该如何查询类似的内容呢?您必须更新所有配方步骤,或者只计算其他步骤之间的顺序值,如1.5
。