使用唯一值

时间:2017-10-15 08:06:14

标签: php mysql fat-free-framework

我正在使用Fat Free Framework来创建我的数据库驱动的应用程序。我创建它可以根据ID轻松存储我的测试结果。 ID是字母和数字的组合,如 A01 A100 ,然后 B01 B100 ,依此类推。现在,我正在写信 H

每个ID都是唯一的列,因此没有两个ID可以相同。我正在检索与此ID相关的所有数据 HTTP://本地主机/监视器/ A01

现在我的问题是,当今年(2017年)结束时,ID将被恢复为2018年数据的 A01 。 我的表结构如下

+---------------+------------------+------+-----+---------+----------------+
| Field         | Type             | Null | Key | Default | Extra          |
+---------------+------------------+------+-----+---------+----------------+
| monitorId     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| monitor_label | char(5)          | NO   | UNI | NULL    |                |
| casting_date  | date             | YES  |     | NULL    |                |
| casting_time  | time             | YES  |     | NULL    |                |
| clientId      | int(10) unsigned | NO   | MUL | NULL    |                |
| projectId     | int(10) unsigned | NO   | MUL | NULL    |                |
| gid           | int(10) unsigned | NO   | MUL | NULL    |                |
| mid           | int(10) unsigned | NO   | MUL | NULL    |                |
| techId        | int(10) unsigned | NO   | MUL | NULL    |                |
| cube_size     | int(1) unsigned  | NO   | MUL | NULL    |                |
| remark        | varchar(255)     | YES  |     | NULL    |                |
| slump         | int(3)           | NO   |     | NULL    |                |
| sample        | int(11)          | NO   |     | NULL    |                |
| data_status   | int(10) unsigned | NO   |     | NULL    |                |
+---------------+------------------+------+-----+---------+----------------+

A01 数据存储在monitor_label

1 个答案:

答案 0 :(得分:0)

您忘了表达您的问题,但我相信您想知道如何构建数据库。

我看到两个解决方案:

1)您要么处理PHP中的系列唯一性,因此您只需要将monitor_label上的唯一索引替换为非唯一索引

2)或者在数据库中存储新的monitor_year列,并将monitor_label上的唯一索引替换为monitor_year,monitory_label上的复合唯一索引