我有一张表格,上面列出了我在主菜单中使用的项目:
型号|显示|名称|子菜单|激活
mysql数据库:
CREATE TABLE `main_menu` (
`model` varchar(255) NOT NULL COMMENT 'name of the model',
`display_name` varchar(255) NOT NULL,
`sub_menu` enum('Fruits','Vegtables','Grains','Breads','Snacks','Sweets') DEFAULT NULL,
`active` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
例子:
model | display_name | sub_menu | active
---------------------------------------------
potato | Potato | Vegtables | 0
apple | Apple | Fruits | 1
pumpkin | Pumpkin | Vegtables | 1
我想给它添加一个到期日(“到期日”)。
并非所有行都有过期日期。
应该是什么类型的 exp_date
? 显然是“约会”。。但如果某一行没有有效期,什么是“良好实践”?插入 NULL
? 插入 0000-00-0
?
model | display_name | sub_menu | active | exp_date
--------------------------------------------------------------
potato | Potato | Vegtables | 0 | NULL
apple | Apple | Fruits | 1 | NULL
pumpkin | Pumpkin | Vegtables | 1 | 2019-03-01
使用mysql 5.7,可能会迁移到新的8版本。我只是想确保我做得很好。我记得(不确定从哪里)日期类型和日期值在一个问题,有一个适当的方法来做这件事。
2条答案
按热度按时间slwdgvem1#
我不认为使用
NULL
当到期日期未知时作为占位符。例如,您希望查找所有尚未过期的记录。治疗NULL
由于尚未过期,我们可以编写以下查询:kuuvgm7e2#
使用
NULL
如果你还不知道实验日期和使用方法9999-12-31
(日期支持的最大值)如果行未过期。