什么对性能和可读性更好:一个布尔类型的状态列还是一个varchar类型的状态列?

22 浏览
0 Comments

什么对性能和可读性更好:一个布尔类型的状态列还是一个varchar类型的状态列?

这个问题已有答案:

使用哪种MySQL数据类型存储布尔值

我正在创建一个Laravel应用,一些数据表会有一个状态列,仅接收两个值:ACTIVEINACTIVE

我认为有两个选择:

  1. 布尔值,通常在MySQL上设置为 tinyint(1)
  2. varchar,并设置 ACTIVE INACTIVE 字符串值

重要的问题是我应该选择哪种类型:

  • 第一种类型在数据库上的存储更小,如果我将列名设置为is_active,则在代码中使用起来很容易,但会使数据库更难以被人阅读;
  • 第二种类型将需要更多空间保存在数据库中,并且在模型中使用一些类常量使事情更加整洁,但会使数据库更容易被人阅读(以及可能添加到项目中的新开发人员)。

我应该选择哪种方式以实现良好的性能和可读性?

编辑:

我的问题是如果需要直接在数据库中编辑某些内容,则开发人员阅读/理解数据库的难度/复杂度,而不是存储和性能问题。

admin 更改状态以发布 2023年5月20日
0
0 Comments

你可以选择任何一种。但如果你真的想在mysql中节省空间,可以使用tinyInt(1),然后只需使用if条件为你的代码中的用户提供可读性即可。但如果你只想让开发人员更易读,只需使用注释就可以解决这个问题。

希望对你有帮助!

0