0

在我的应用程序中,我只是使用 SQLlite 数据库进行开发。现在在迁移中,我声明了一个DATElaravel 似乎可以毫无问题地处理的数据类型,并在数据库本身中将其创建为varchar.

根据这篇不错的文章(http://www.sqlitetutorial.net/sqlite-date/),SQLite基本上有三个处理日期的选项:

  • 使用 TEXT 存储类存储 SQLite 日期和时间
  • 用于存储 SQLite 日期和时间值的 REAL 存储类
  • 使用 INTEGER 存储 SQLite 日期和时间值

所以当我试图制定我的方法时,我在想我可能最终会在某个时候需要加强并转移到更高性能的 SQL 数据库(mySQL / Postgres / 等)然后可能有数据类型转换的挑战。

但是,在应用层,Laravel 本身也有一些操作。

现在,我要问的问题是,一种类型比另一种类型有什么好处?是否有某种理由选择一种类型而不是另一种类型?我的想法是 TEXT 对于后端支持来说很好并且可读,但它可能需要额外的编码来操作字符串。

INTEGERS 可能更有效,并且比文本更容易翻译成更大的 SQL 服务器。

有谁知道各种选择的优缺点比较?有什么建议吗?提前致谢。

4

1 回答 1

0

整数的大小为 4 个字节。文本中一个字母的大小是 1 个字节。使用整数时,要表示日期和时间,您需要 1 个 UTC 数字。因此,使用 4 个字节的整数比使用 8 个字节的文本要好得多。出于完全相同的原因,我看不出真实比整数更好。我会说你应该使用整数。

于 2018-08-22T23:16:42.647 回答