允许用户在其个人资料上放置标签的数据库结构?

时间:2012-05-14 01:57:10

标签: mysql database database-design

我有一个包含以下信息的用户表

users (id, username, password, email, location, about, sex, age, etc.)

我想让用户在其个人资料中添加最多五个标签。

标签将存储他们的兴趣。并将用于根据相似的兴趣向其他用户推荐用户。

我应该在我的用户表中创建一个字段,在那里他们可以存储所有五个标签,还是应该为每个标签创建一个单独的标签表,每个标签对应于它所属的user_id

如果我选择选项1,如何在PHP中存储用逗号分隔的标签?我会创建存储标记名称的变量,然后如何以正确的格式添加它?

1 个答案:

答案 0 :(得分:2)

在一个字段中管理多个标签可能会导致问题。

就个人而言,我会制作一张新表:

tags (id, userid, tag)

如您所见,它使用userid作为外键。计算它们等也会更容易。