例如,考虑您有两个数据和平的情况,其中一个值很少使用另一个值。作为一个例子,这里是一个包含用户认证数据的表格:
CREATE TABLE users
(
id INT PRIMARY KEY,
auth_name STRING,
auth_password STRING,
auth_password_salt STRING
)
我认为没有盐的密码是没有意义的,反之亦然。我也可以选择以这种方式表示数据:
CREATE TABLE users
(
id INT PRIMARY KEY,
auth_name STRING,
auth_secret STRING,
)
在 中auth_secret
,存储字符串,例如D5SDfsuuAedW:unguessable42
一般来说,在任何情况下将列组合成一个分隔列会是更好的选择吗?
即使总体上它从来都不是一个“更好的选择”,但拥有更多列而不是更少列(对于相同的数据)是否有任何成本(性能、空间等)?我的动机是更好地理解并在有人提出此类建议时能够更有能力地反对它。
--编辑我更改了示例...原始示例如下:
CREATE TABLE points
(
id INT PRIMARY KEY,
x_coordinate INT,
y_coordinate INT,
z_coordinate INT
)
对比
CREATE TABLE points
(
id INT PRIMARY KEY,
position STRING
)
在position
,存储字符串,如7:3:15