【发布时间】:2020-02-14 14:02:13
【问题描述】:
例如,
有两条线和几个车站。
Line X
Station A - Station B - Station C - Station D
Line Y
Station E - Station F - Station B - Station G
X线和Y线在B站交叉
所以我的表格如下所示
线表
1 X "LineX"
2 Y "LineY"
站台表
1 A X
2 B X,Y
3 C X
4 D X
5 E Y
6 F Y
7 G Y
模型是这样的(这是 django 但使用学说几乎一样。)
class Line(models.Model):
name = models.CharField(unique=True,max_length=255)
def __str__(self):
return self.name
class Station(models.Model):
name = models.CharField(unique=True,max_length=255)
lines = models.ManyToManyField(Line)
def __str__(self):
return self.name
这样的话,你就可以轻松搞定LineX的车站了。
SELECT from station table where line (which include) Y
return A,B,C,D
但是对于LineY
它返回B,E,F,G
但B 不是顶部。
这是第三站。
我想我应该添加一些列来保持每行的顺序。
保持多项顺序的结构的最佳做法是什么?
我熟悉 Doctorine2 和 django 模型。
如果您能提供任何帮助,我将不胜感激。
【问题讨论】:
标签: mysql sql django database doctrine