gpt4 book ai didi

sql - 按引用字段的相对增量 ID

转载 作者:行者123 更新时间:2023-12-02 01:59:01 27 4
gpt4 key购买 nike

我有一个表来存储某些事件的预订;其相关部分是:

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。

免责声明:当然,我们假设预留永远不会被删除,或者它们的相对位置可能会发生变化。

示例:

+----+-------+------------+--------+
| 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 |
+----+-------+------------+--------+

最后一列是“相对 ID”,即同一事件的所有预订的连续编号,没有间隙。

现在,完成此操作的最佳方法是什么,而无需手动计算每个导入的相对 ID(我不喜欢那样)?我使用 postgresql 作为底层数据库,但我更愿意坚持使用 django 抽象层,以保持其可移植性(即没有特定于数据库的解决方案,例如触发器等)。

最佳答案

使用 Reservation.objects.filter(event_id = some_event_id) 进行过滤就足够了。这将为您提供一个每次都应具有相同顺序的查询集。或者我在你的问题中漏掉了一些东西?

关于sql - 按引用字段的相对增量 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8618766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com