MysqL> describe Quiz;
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| quiz_id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(25) | YES | | NULL | |
| category | varchar(20) | YES | | NULL | |
| is_published | tinyint(1) | YES | | 0 | |
| open_count | int(11) | YES | | 0 | |
| finish_count | int(11) | YES | | 0 | |
+--------------+-------------+------+-----+---------+----------------+
@H_403_7@
在所有6个表中,在编写CREATE TABLE时…我没有对每个属性强制执行NOT NULL(如上所示),但它们应该是NOT NULL.
最佳答案
@H_403_18@除了在代码中执行它之外,我可以给你两个理由在数据库中强制执行它.
>如果您的PHP代码中出现错误,您的数据将不会损坏.如果您只是检查数据库中的返回代码,您会立即注意到该错误.
>如果有人决定在数据库中手动更新数据,他们将无法错误地将字段保留为应用程序代码无法处理的NULL.