Django火车路线模型设计

时间:2015-08-20 12:00:15

标签: django database-design django-models

我想在我的数据库中存储多个电台和多个列车。我计划将每个车站作为一个车型,每个列车作为一个车型。

但我想了解我们应该如何使用车站模型以动态的方式存储每条列车路线。

例如,我们有站A,B,C,D,E

并且训练t1路线是A-C-B-D-E 和火车t2路线是A-B-E

所以我想在每列火车模型下存储这些列车路线。有人可以帮我这个吗?

由于

2 个答案:

答案 0 :(得分:0)

从数据模型的角度来看,这样的事情应该适合你。

class Station(models.Model):
    pass

class Route(models.Model):
    class Meta:
        # Specify that the train and index are unique together to prevent
        # any duplicate stations at the same index value at the db level.
        # You'll probably want to validate this in the application logic as well.
        unique_together = ('station', 'index')
    station = models.ForeignKey('train.Station')
    train = models.ForeignKey('train.Train')
    index = models.IntegerField()

class Train(models.Model):
    stations = models.ManyToManyField('train.Station', through=Route)

答案 1 :(得分:0)

通过您的方法,您可以将电台视为全部连接。对于每个电台,您可以使用 many2many字段,这样您就可以相互“连接”电台。 然后,您可以使用三种模型:

  • 列车
  • 路线

电台已连接到电台。路线有起点和终点。列车与路线有关(因为一列火车可以在多条路线上行驶,或者一条路线可以运输多条列车)。 您还可以以编程方式计算(图表)列车在开始和目标之间必须采取的站数。