我的用户帐户表单的一部分询问人们他们的兴趣($tags),这些兴趣存储在 MySQL 中,每个 $tag 用逗号分隔。
每个 $tag 都有一个 id,然后一个单独的表将用户的唯一 id 与 $tag id 链接起来。
这一切都很好 - 绝对理想但我不想重复标签数千次。例如,很多人会输入“gym”作为兴趣。继续添加一个具有唯一 id 的新“gym”$tag 似乎是一种浪费,而一旦将其作为 $tag 输入一次,该 $tag id 就可以与碰巧也输入 ' 的任何新用户 id 相关联健身房'。那有意义吗?
我当前的代码如下($tags 来自经过清理的 $_POST),并插入到两个表中:
1.tag_id 有一个 $tag 的标签字段,每个都生成一个唯一的 id 2.tag_relation 将用户 id 与生成的标签 id 匹配。
$tags = strtoupper($tags);$tags= preg_split('/\,/', $tags);
foreach ($tags as $ind)
{
$sql = "INSERT INTO tag_id (tag) VALUES('$ind')";
$result=mysql_query($sql);
}
foreach ($tags as $ids)
{
$sql = "SELECT * FROM tag_id WHERE tag = '$ids'";
$result=mysql_query($sql);
$idinfo=mysql_fetch_assoc($result);
$id=$idinfo['t_id'];
$sql = "INSERT INTO tag_relation (user_id, tag_id) VALUES ('$user_id', '$id')";
$result=mysql_query($sql);
}
所以我的问题是,是否可以将上述内容修改为不在 tag_id 表中重复 $tags,而是将该表中现有的 $tags 与 tag_relation 中的用户 ID 匹配?