我正在考虑使用 long
数据类型来存储通过 System.currentTimeMillis
生成的时间戳。
我想将此值作为 BIGINT
存储在关系数据库中。
这是一个好主意吗?
我的主要目标是保持 DBMS 独立。因此我可以在不更改代码的情况下转移到 MySQL 或 H2,其次使其与时区无关。
如果这是个坏主意,什么是更好的方法?
最佳答案
这是个好主意,已成功应用于许多项目。
您可能会考虑的一个问题是,您是要在应用服务器上还是在数据库服务器上生成时间戳。问题是您的各种应用程序服务器对时间的想法略有不同——如果您希望整个应用程序的时间顺序保持一致,您可能会决定使用数据库作为时间戳的唯一真实来源。这取决于您的时间戳的使用方式以及您的应用程序对时间顺序噪声的容忍度。
当然,似乎每个数据库供应商都有不同的函数来获得 System.currentTimeMillis
的等价物,这显然违反了您的状态目标之一。
关于java - 在 JDBC 中将时间戳存储为 Long .. 好还是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706875/