今天,我与我的工程同事就应用程序和数据库设计在金融科技进行了一次对话。
我们如何处理时间?我们都知道我们需要存储UTC格式的datetime信息。但我们的争论是,我们是否应该在数据库中存储一个整数的unix纪元时间戳,例如,1596507157。08/04/2020 @ 2:12am UTC或2)以ISO 8601格式存储在string 2020-08-04T02:12:37+00:00或2020-08-04T02:12:37.123456789Z中
unix时间戳的缺点显然不是直接的人类可读的。
我在这里寻找一些关于我们是否应该采用这两种方法的设计建议。
发布于 2020-08-04 10:23:48
在我看来,你应该将它存储为整数而不是字符串,其中一个原因是显而易见的,int只需要4个字节,而字符串作为ISO 8601需要更多。
你所看到的缺点是,它不会影响后端,它只是一个补充(只在用户视图中需要)。
发布于 2020-08-04 12:12:05
大多数数据库都有datetime数据类型。我猜你的“纪元时间戳”指的是datetime或timestamp数据类型。对于数据库工程师来说,处理datetime类型更容易(性能也更好)。数据库还具有datetime格式化功能。(Oracle/MS SQL Server - convert、MySQL - date_format、PostgreSQL - to_char ...)
在我看来,存储和处理datetime类型,并使用格式化函数的人。
https://stackoverflow.com/questions/63239341
复制相似问题