我目前正在为特定运动创建技术数据库。在这个特定的运动中,有一组独特的组件运动(Component
),这些运动结合起来进行不同的运动(Move
)。
组件发生的顺序很重要。例如,我们可能有3个组件A
,B
和C
,然后由A - >定义移动。 B - > C不同于A - > C - > B.正如您所看到的,除了组件之外还有更多的动作。在某个时间点,能够根据不同Move
中存在Components
的{{1}}来搜索Move
。
所以我最初认为我会创建一个类Component
和一个类Move
,其骨架结构类似于:
class Component(models.Model):
"""Defines a unique component movement"""
name = model.CharField(max_length=30)
def __unicode__(self):
return self.name
class Move(models.Model):
"""Define a move as a sequence of Components in the order in which they happen"""
name = model.CharField(max_length=40)
component_sequence = #what should I do here?
def __unicode__(self):
return self.name
现在我的问题是在Django模型中实现component_sequence
的最佳方法是什么?最初我以为我可以以某种方式存储Component
对象的主键的csv列表,但这看起来很讨厌,所以我想知道是否有更好的方法来做到这一点?
答案 0 :(得分:2)
创建一个将Move
连接到Component
的M2M模型,并添加一个序数字段。在所有三个中创建一个唯一索引。