抱歉,如果这听起来很愚蠢,我是 SQL 编码新手。顺便说一句,我正在尝试标准化时间表并尝试执行第一个范式,我应该标准化时间列吗?或者我应该就这样保留它吗?
我们的任务是将其标准化为所有可能的范式,以消除冗余和异常。 Table
最佳答案
当您有一列包含由小时、分钟、秒组成的单个时间值时,您不会将其标准化为 3 列。
当您在一个列中拥有两个时间值(可以说是一个时间范围)(就像您的情况一样)时,您绝对可以将其标准化。创建 2 列:start_time 和 end_time。
如果不这样做,您甚至无法以正常方式查询表。想象一下,您想要查询类似于 WHERE NOW() BETWEEN start_time AND end_time
的内容。如果将时间放在一栏中,您会如何做到这一点?你不能(没有一些非常昂贵的额外步骤)。
这一点我怎么强调都不为过,永远不要在一列中存储多个值!
关于mysql - 我应该规范数据库中的时间记录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59852885/