将CSS颜色值存储在DB中

时间:2012-11-29 14:48:33

标签: mysql types sqldatatypes

我需要将 CSS HEX 颜色值(例如#FFFFFF)存储到mysql数据库中。

我会使用哪种类型的数据以及为什么使用另一种数据会更好?

2 个答案:

答案 0 :(得分:15)

如果列不为空,则使用char(6)保存颜色而不使用# ...如果列可以为空,请使用varchar(6)来保存大小

答案 1 :(得分:3)

如果您关心磁盘空间,则应使用BINARY(3)

该答案是供高级用法使用的,与大多数开发人员无关(公认的答案是好的)。 我将其发布在这里,因为这是Google的第一个结果。

可维护性和磁盘空间之间需要权衡。以css十六进制表示的颜色,即#f8f8f8也可以表示为BINARY(3)

BINARY(3)的困难在于您必须将十六进制字符串来回转换为二进制。您可以使用HEX()和UNHEX()来执行此操作,但是维护数据库的任何人都必须了解二进制类型才能进行更改。很容易低估这将对未来开发人员造成的问题。

但是使用BINARY(3)有好处。如果保存为#f8f8f8,则保存在磁盘上的CHAR(6)数据是101010101011100011010001110101001001111111110,好像保存为BINARY(3)一样,它将是111110001111100011111000