gpt4 book ai didi

MySQL 和预定义标签 : One table solution?

转载 作者:行者123 更新时间:2023-11-29 15:54:26 25 4
gpt4 key购买 nike

我有一个 items 表,我想添加标签。用户最多可以向每个项目添加 15 个预定义标签中的三个。

通常,您会使用 tag 表,但由于我只有几个永远不会改变的预定义标签,我想知道是否有更简单的方法。

我正在考虑有一个字段tags,其中每一位代表预定义的标签之一。我会对选定的标签进行“或”操作并存储一个“int”。

现在我的问题是:告诉我为大量行设置了哪些标签(int 中的位)的查询会是什么样子?

最佳答案

虽然我实际上并不推荐使用它,但这就是 SET 的用途。数据类型的设计目的。

它作为整数存储在列中,每一位代表一个标签。但是,当您获取该值时,它会作为逗号分隔的标签列表返回,并且您可以以相同的方式分配值。要判断值中是否包含特定标记,请使用 FIND_IN_SET() 函数。

您还可以访问该列的数值。如果您想屏蔽某些位,这非常有用。

上面链接的文档提供了更多详细信息以及一些注意事项。

虽然存储空间相当高效,但大多数对设置值的操作无法有效利用索引。例如,搜索具有特定标记的所有行将需要完整扫描。

关于MySQL 和预定义标签 : One table solution?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56574273/

25 4 0