在Mysql中实现关键字或标签的最佳方式

时间:2011-12-29 20:47:23

标签: php mysql tags

所以我有一个食谱数据库,我希望将关键字或标签与每餐相关联,例如 如'中国','意大利','低牌'等 用户从不提交关键字,因此我可以完全控制。 您认为以下哪一种是最好的方法..

A)我可以在餐桌上添加一个列,其中包含关键字,后跟逗号。 意大利语,健康等等。然后我可以从单个列的单行中获取结果,然后使用PHP来解析结果并执行繁重的工作。

B)我可以有一个关键字表,每行包含meal_id,然后是一个关键字。然后,我可以查询具有该ID的所有关键字。

或者是否有更好的方法来实现关键字,例如全文?

4 个答案:

答案 0 :(得分:9)

如果您使用关键字表示像许多网站上使用的标签,例如StackOverflow。那你就有三张桌子。一餐包含餐点,一张餐桌包含关键字,另一张餐桌将两者连在一起。这样,您就可以通过简单的SQL查询有效地列出与某个关键字相关的所有餐点。

答案 1 :(得分:1)

我肯定会为关键字使用单独的表来确保您的数据库正常化。

答案 2 :(得分:0)

绝对选择B.这是更标准化的选项,并且最容易使用。否则,您的代码必须解析查询结果。

答案 3 :(得分:0)

B更好,当你按标签搜索时,这将是一项琐碎的任务。使用A你必须更加努力。同样使用B,您始终可以使用GROUP_CONCAT(标记)

获取通信分隔标记