1

我对 MySQL 和 PHP 还很陌生,但我正在慢慢掌握它。

我正在一个带有个人资料页面的网站上工作。我的数据库中有一个用户表,我也打算创建一个配置文件表。

在我解释我的“问题”之前,我想说我实际上还没有开始编写一个尝试过的解决方案。我喜欢在开始之前计划我的工作,尤其是当它变得复杂时。因此,我无法真正显示任何代码片段。

我想为用户配置文件创建一个标记系统。IE。让个人资料所有者从现有列表中选择关键字,并将它们与他的个人资料页面相关联。

在深思熟虑并阅读了我收集的关系数据库之后,我应该从创建两个额外的表开始:

1. tags (tag_id, tag_name)
2. tag_rel (tag_id, user_id)

并在每个配置文件与用户分配给它的不同标签之间创建关系,在单独的行上:

(Tag1, UserA)
(Tag2, UserA)
(Tag1, UserB)

等等

然后,当我搜索配置文件时,我只需选择具有特定 tag_id 的所有 user_id。很容易。

我的问题是插入或更改列表时的 PHP 和 MYSQL 查询代码。

我基本上希望用户能够从检查列表或现有标签的下拉选择列表(或任何等效项)中进行选择,选中或取消选中他的选择,然后发送以将其输入数据库。

我可以想象选择标签的初始输入很容易通过一个foreach()函数和一个简单的 INSERT 查询来实现,并且一次从一个值的形式输入数组。

但是当用户回去更改标签时,我将如何指示查询保留一些标签、删除其他标签并插入新标签?做这样的事情的最佳方法是什么?

一个想法: 我应该删除用户在 tag_rel 中的所有现有行,并插入新数组吗?

4

2 回答 2

0

我会使用这样的过程:首先,您从数据库中获取用户选择的标签并将它们传递给数组(SELECT from tag_rel where user_id = $userId)

然后你会过去让用户对数组进行操作(添加新标签,删除旧标签)

最后,您将删除旧条目并从提供的数组中插入全新的条目

于 2013-07-05T09:37:12.153 回答
0

最简单的方法是删除tag_rel该特定 user_id 的数据,然后重新插入新的

于 2013-07-05T09:38:19.387 回答