我对 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 中的所有现有行,并插入新数组吗?