【发布时间】:2021-01-09 06:33:16
【问题描述】:
我正在学习 Django 的后端开发,遇到了这个问题。
假设我正在设计一个旅行应用程序: 我有两个具有一对多关系的数据库 USER 和 TRIP。即,每个用户可以有多次旅行,每次旅行只能由一个用户进行。
TRIP 有一列 trip-number。我想为添加到 TRIP 数据库中的每一行自动增加此列但对于每个用户,从 1 开始,增量应该是独立的
行程表
| user | trip-number |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 2 |
| 3 | 1 |
类似的东西?我不能自动增加整个列,因为它对于用户的每次旅行都必须是唯一的,但是不同用户的数字可以相同。
理想情况下,我更喜欢在服务器端 (sql) 上自动执行此操作,而不是在客户端中编写逻辑。任何帮助,将不胜感激。谢谢
【问题讨论】:
-
您可以为它创建插入/删除触发器,并找到每个用户的最大数量,并为新添加的记录添加一个。但我不建议使用触发器。相反,您可以创建一个视图,其中将为 trip_number 增加一列..
-
这就是我现在正在做的事情。对于每次插入,我都会过滤并获取用户的旅行次数并增加它。但我想看看是否有更好的方法来做到这一点,而且我没有遗漏任何明显的东西。你的陈述的第二部分是什么意思?该表还有其他列,如源、目的地等,单独拉出trip_number列并使其成为一个单独的表并没有任何关联的意义对吧?
-
不要这样做。只需存储一个 AI。