【问题标题】:What will be better for performance and readability: a status column with boolean type or varchar? [duplicate]什么对性能和可读性更好:布尔类型或 varchar 的状态列? [复制]
【发布时间】:2019-12-03 04:56:13
【问题描述】:

我正在创建一个 laravel 应用程序,一些表的状态列将只接收两个值:ACTIVEINACTIVE

我想我有两个选择:

  1. 布尔型,MySql 上一般设置为tinyint(1)
  2. varchar,并设置ACTIVEINACTIVE字符串值

最大的问题是我应该选择哪种类型:

  • 第一个比较小,存储在数据库上,如果我设置像is_active这样的列名,在代码中很容易使用,但会使数据库更难被人类准备好;

  • 第二个将需要在数据库中保存更多空间并在模型中保存一些类常量以使事情更有条理,但会使数据库更易于人类阅读(以及可以添加到项目中的新开发人员) )。

我应该选择哪个性能和可​​读性好?

编辑:

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

【问题讨论】:

  • 还不如使用enum 而不是varchar
  • enum 的问题不是标准的 sql 类型,如果需要,Laravel 很难改变。

标签: mysql database laravel


【解决方案1】:

您可以选择其中之一。但是如果你真的想在你的 mysql 中节省空间,你可以使用tinyInt(1) 然后只需使用if condition 来为你的代码中的用户提供可读性。但是,如果您只希望开发人员具有可读性,只需使用注释即可解决问题。

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-08
    • 2013-12-29
    • 2011-12-04
    • 2011-04-11
    • 1970-01-01
    • 2020-09-10
    • 2021-08-23
    • 2012-09-01
    相关资源
    最近更新 更多