首页 > 解决方案 > 在 MySQL 中将值类型存储为数据库列

问题描述

我需要的是,我认为,很常见。我想global_variables使用 MySQL 创建一个表来存储我在整个 Web 应用程序中需要的一些变量。问题是每个变量都有多种类型之一(int、float、string、BLOB 等)。所以我需要能够创建我的表,其中包含 , , 等列idprogram_name其中value_typevaluevalue一个字符串,我将在获取/设置值时进行相应的转换。所以一些示例记录将是:

[
    ['program_name' => 'invoice_number', 'value_type' => 'int', 'value' => '12345'],
    ['program_name' => 'last_merge', 'value_type' => 'date', 'value' => '10.06.2020'],//etc.
]

让我停下来的是TypeMySQL 中缺少列类型。非常感谢您对任何建议的任何帮助!

PS 我正在使用带有 Laravel 5.8 的 MySQL MariaDB。

标签: mysqllaravelmariadblaravel-5.8

解决方案


只需将它们存储为字符串。

在日期上下文中,字符串将自动转换。

在数字上下文中,字符串将自动转换。

在布尔上下文中,数字 0 为假,其他为真。

如果你有反例,让我们看看。可能有一个简单的解决方法。


推荐阅读