Django订购了序列模型设计

时间:2014-01-04 04:44:04

标签: python django django-models

我目前正在为特定运动创建技术数据库。在这个特定的运动中,有一组独特的组件运动(Component),这些运动结合起来进行不同的运动(Move)。

组件发生的顺序很重要。例如,我们可能有3个组件ABC,然后由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列表,但这看起来很讨厌,所以我想知道是否有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:2)

创建一个将Move连接到Component的M2M模型,并添加一个序数字段。在所有三个中创建一个唯一索引。