gpt4 book ai didi

mysql - 在 MySQL 中存储用户偏好的最佳方式 - BINARY 或 INT

转载 作者:可可西里 更新时间:2023-11-01 07:37:48 26 4
gpt4 key购买 nike

我知道之前有人问过这个问题,最佳答案似乎如下: Best approach to save user preferences?

但是我有一些额外的标准,这就是我再次问这个问题的原因,我需要能够将一个用户的偏好与另一个用户的偏好进行比较,并快速了解两个用户之间的差异所有用户首选项都将是一个 bool 值

实现此目标的最佳方法是什么?

我的思路是这样的:有一个代表所有用户偏好的二进制数:例如1100011100..每个位对应一个特定的偏好

然后将其保存为 BINARY 类型(我可以在其中存储 255 位,即 255 个首选项设置 - 对吗?)或将二进制转换为 int 并将其存储为 int(然后选择 INT 或 BIGINT - INT = 4*8 = 32 位,BIGINT = 8*8 = 64 位)

这样我只需要在我的用户表中有 1 个额外的列来存储偏好,并且通过简单地获取二进制数就可以很容易地比较两个用户之间的偏好

有没有人对如何做我想做的事情有任何其他想法,或者看到我在这里尝试做事的方式有问题?

(注意数据库不是我的强项)

最佳答案

我建议远离 BINARY Bitmask 选项,因为它会使查询具有特定设置的用户变得非常困难。

我见过的一种方法是在数据库中使用键值对。

SettingsTable
(
FkUserId int,
SettingKey varchar(1024),
SettingValue varchar(1024)
);

这不能很好地适应大量用户,但可以很容易地添加任意数量的键/值组合,而无需修改数据库。

您可以使用 settingsKey 表和设置值表以更高效的方式执行类似的操作。

SettingsKeys
(
KeyId int,
SettingKey varchar(1024)
);



SettingsTable
(
FkUserId int,
FkKeyId int,
SettingValue varchar(1024)
);

这会比原始设置表更有效,并且您无需修改​​架构即可存储任意数量的可能设置。

只是一些想法。

关于mysql - 在 MySQL 中存储用户偏好的最佳方式 - BINARY 或 INT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10118763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com