【发布时间】:2013-11-16 04:33:19
【问题描述】:
我多次遇到这个问题,但还没有找到“MySQL 方法”来解决这个问题 - 我有一个包含 用户 和 报告强>。每个报告都有一个id,我将其作为报告编号显示给我的用户。
主要的抱怨是用户对报告为什么从他们的系统中丢失感到困惑。实际上并非如此。实际上,他们正在识别他们的 ID 之间的差距,并假设这些是缺失的报告,而实际上,这只是因为另一个用户填补了这个自动递增的差距。
我需要知道在 MySQL 中是否有办法做到这一点:
我是否可以有一个名为 report_number 的 second 自动增量字段,它基于具有不同的 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,因为它的外键权重很大。当我添加第二个自动增量字段时,它似乎在抱怨,但我不确定是否有其他方法可以做到这一点?
【问题讨论】:
-
这通常在客户端解决。客户端可以递增地标记行。它甚至不需要
report_number来做到这一点。
标签: mysql sql database-design relational-database innodb