Например,
Есть две линии и несколько станций.
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, но использование doctrine почти одинаково.)
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.
Буду признателен за любую помощь с вашей стороны.