想象一下:有一个“recipe”表和一个“recipe-step”表。这个想法是允许在不同的配方中重用不同的配方步骤。我遇到的问题与以下事实有关,即在配方上下文中,配方步骤显示的顺序很重要,即使它不遵循配方步骤表主键顺序,因为这个顺序将是由用户设置。
我正在考虑做类似的事情:
配方步骤表: 编号 | 步骤名称 | 步骤说明 ------------------------------------------- 1 | 第一步 | 描述1 2 | 步骤2 | 描述2 3 | 第三步 | 描述3 ... 配方表: 食谱ID | 步 --------------- 1 | 1 1 | 2 1 | 3 ...
这样,步骤列中显示的步骤顺序就是我需要维护的顺序。
我对这种方法的担忧是:
- 如果我必须在两个现有步骤之间添加一个新步骤,我该如何查询?如果我只需要切换序列中已经存在的两个步骤的顺序怎么办?
- 如何确保订单保持一致性?如果我只是在配方表中插入或更新某些内容,它会在表的末尾弹出,对吗?
有没有其他方法你会想到这样做?我还想过在配方步骤表中设置上一步和下一步列,但我认为以这种方式使配方步骤可重用会更加困难。