mysql - 用于存储内容主题标签/关键字的最佳 mysql 字段类型

标签 mysql database database-design

我需要存储用户帖子/评论,每个帖子都有一个 post_hashtags 字段(如关键字)...

哪种 MySQL 数据类型最适合这个 post_hashtags?

我需要稍后能够选择包含一个给定主题标签(完全匹配)的所有帖子,例如,在像这样的网址上显示所有相关帖子时

www.example.com/tag/car

通常我会将它们存储在 text 类型的字段中并像这样分隔它们:

[汽车][红色][引擎]

这样我就可以使用 SELECT * from user_posts WHERE post_hashtags LIKE '%[car]%' 进行查找

是否有更好的数据类型? 这些主题标签应包含任何字母数字值,而不是一组有限的可能预定义值。

最佳答案

明确回答您的问题:varchar(20) 是一个不错的选择。

为获得最佳性能,请使用单独的表来存储您的标签:

Table tags
----------
id integer PK
tag varchar(20)

此链接可能会有帮助:Best way to store "tags" for speed in enormous table

希望这对您有所帮助。

关于mysql - 用于存储内容主题标签/关键字的最佳 mysql 字段类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22209716/

相关文章:

sql - MySQL:比较两个表之间的差异

php - 与 from 有问题

php - 如何从选定字段列表构建 SQL 查询?

php - 在 php for 循环中只显示来自 mysql 数据库的一行?

MySQL自动按周分区

mysql - 连接原因笛卡尔积

mysql - 在 My Sql 中查找列的最大值

python - 将字节数组/MySQL BLOB 转换为 Python 中 float32 的列表/Numpy 数组?

sql - 为什么关系数据库管理系统中的主键往往是一个整数?

Android(分布式应用)主键策略