我有一个Chart
由多个模型组成的Box
模型(所以Box
有一个外键Chart
)。Box
模型有一个字段number
定义它们在Chart
.
现在Box
将有一个返回其内容的方法。内容是什么,取决于前一个盒子和下一个盒子的属性(如果有的话)。因此,从Box
模型中我需要参考前面Box
的和即将到来的Box
。
现在我看到两个选项:
- 为 previous 和 next 制作外键
Box
。 - 要求
Chart
一个盒子在哪里number = (current box number -1 or +1)
最有效的方法是什么?为什么?如果我使用外键方法,它会做额外的查询还是自动建立这个连接?当然,我必须select_related
在查询集上使用才能获得完整的Chart
. 您认为哪个选项最具可扩展性?
我知道我当然可以对此进行测试,但我想知道其他人会怎么想,以及是否还有其他我没有意识到的解决方案。