我已经多次遇到这个问题,但还没有找到解决问题的“MySQL 方式”——我有一个包含用户和报告的数据库。每个报告都有一个ID,我将其作为报告编号显示给我的用户。
主要的抱怨是用户对为什么报告从他们的系统中丢失感到困惑。实际上并非如此。实际上,他们正在识别他们的 ID 之间的差距,并假设这些是缺失的报告,而实际上,这只是因为另一个用户填补了这个自动递增的差距。
我需要知道在 MySQL 中是否有办法做到这一点:
是否有可能我可以有第二个名为report_number的自动增量字段,它基于 user_id字段,每个用户有一组不同的自动增量?
例如
|------|---------|---------------|
| id | user_id | report_number |
|------|---------|---------------|
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 1 |
| 5 | 1 | 4 |
| 6 | 1 | 5 |
| 7 | 2 | 2 |
| 8 | 3 | 1 |
| 9 | 3 | 2 |
|------|---------|---------------|
我为此使用InnoDB,因为它的外键权重很大。当我添加第二个自动增量字段时,它似乎在抱怨,但我不确定是否有其他方法可以做到这一点?