У меня есть таблица для хранения бронирований на определенные события; соответствующая его часть:
class Reservation(models.Model):
# django creates an auto-increment field "id" by default
event = models.ForeignKey(Event)
# Some other reservation-specific fields..
first_name = models.CharField(max_length=255)
Теперь я хочу получить последовательный идентификатор данного резервирования относительно резервирования для того же события.
Отказ от ответственности: Конечно, мы предполагаем, что оговорки никогда не удаляются, или их относительная позиция может измениться.
Пример:
+----+-------+------------+--------+
| ID | Event | First name | Rel.ID |
+----+-------+------------+--------+
| 1 | 1 | AAA | 1 |
| 2 | 1 | BBB | 2 |
| 3 | 2 | CCC | 1 |
| 4 | 2 | DDD | 2 |
| 5 | 1 | EEE | 3 |
| 6 | 3 | FFF | 1 |
| 7 | 1 | GGG | 4 |
| 8 | 1 | HHH | 5 |
+----+-------+------------+--------+
Последний столбец - это «Относительный идентификатор», то есть порядковый номер без пробелов для всех резервирований одного и того же события.
Теперь, каков наилучший способ сделать это без необходимости вручную вычислять относительный идентификатор для каждого импорта (мне это не нравится)? Я использую postgresql в качестве основной базы данных, но я бы предпочел придерживаться уровня абстракции django, чтобы сохранить его переносимым (то есть никаких решений для конкретной базы данных, таких как триггеры и т. Д.).