mysql - 我应该规范数据库中的时间记录吗?

标签 mysql sql

抱歉,如果这听起来很愚蠢,我是 SQL 编码新手。顺便说一句,我正在尝试标准化时间表并尝试执行第一个范式,我应该标准化时间列吗?或者我应该就这样保留它吗?

我们的任务是将其标准化为所有可能的范式,以消除冗余和异常。 Table

最佳答案

当您有一列包含由小时、分钟、秒组成的单个时间值时,您不会将其标准化为 3 列。

当您在一个列中拥有两个时间值(可以说是一个时间范围)(就像您的情况一样)时,您绝对可以将其标准化。创建 2 列:start_time 和 end_time。

如果不这样做,您甚至无法以正常方式查询表。想象一下,您想要查询类似于 WHERE NOW() BETWEEN start_time AND end_time 的内容。如果将时间放在一栏中,您会如何做到这一点?你不能(没有一些非常昂贵的额外步骤)。

这一点我怎么强调都不为过,永远不要在一列中存储多个值!

关于mysql - 我应该规范数据库中的时间记录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59852885/

相关文章:

sql - SQL Server 2016 上插入或更新的安全解决方案

mysql - 一条SQL语句

mysql - SQL Varchar 命令

mysql - 无法从 Amazon EC2 中的 Java Servlet 连接到 MySQL

php - mysql - fatal error : Call to a member function

python - 每个结果的多个子查询,如何更快?

mysql - 合并 SQL 语句以及它如何影响处理时间

php - 将图像上传到服务器并存储在MySQL数据库中

python - MySQL/Python -- 提交的更改未出现在循环中

php - 当五个值的列表与五个列中的任何一个匹配时,SQL 查询选择行