【发布时间】:2021-03-03 13:04:56
【问题描述】:
这是我的提交表。用户提交挑战。他们可以根据需要提交任意数量的提交,直到提交正确为止。一旦记录了正确的提交,就不应再有提交给challenge_id、user_id 组合。我最初是在我的应用程序中强制执行此约束,但希望将此约束移至数据库。
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | int(11) | YES | MUL | NULL | |
| challenge_id | int(11) | YES | MUL | NULL | |
| correct | tinyint(1) | YES | | NULL | |
| timestamp | datetime | YES | | NULL | |
| flag | varchar(512) | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
我的尝试
我尝试将表的主键设为KEY(user_id, challenge_id, correct)。这样做的问题是,只要正确为假,就可能有多次提交。
解决此问题的一种方法是什么?
【问题讨论】:
标签: mysql python-3.x database-design flask-sqlalchemy