PHP是否具有数据库分类检索表

时间:2011-03-14 11:48:17

标签: php mysql

我想把一些文章存入数据库。我用的是php和mysql。 是否有数据库分类检索表? 喜欢:

directory | keyword1 | keyword2 | keyword3 | keyword4|
  sport   | football |    f1    |    nba   |  tennis |

这样:

$query = mysql_query("SELECT * FROM keywordtable WHERE keyword1='$word' OR keyword2='$word' OR keyword3='$word' OR keyword4='$word' ");

如果文章中的某些单词与其中一个关键字匹配,则该文章将插入目录 - sport。 感谢。

我需要一个像我的例子一样的表,它应该有很多单词可以让我参考:如果我的文章出现这些单词,我可以把它放到它应该的目录中。我知道有越来越多的单词可以定义为sport

2 个答案:

答案 0 :(得分:1)

如果您使用something1 something2之类的字段,那么您应该为它们使用不同的表,基本上这就是关系数据库的用途。 (当然有一些合理的理由使用这样的东西,例如缓存目的。)

答案 1 :(得分:0)

如果我理解您的要求,您希望有一个关键字表格,您可以根据该关键字表格检查内容。如果内容与任何关键字匹配,则内容将使用关联的目录进行标记。如果这是正确的,那么你需要4个表:

关键字

  • 千字
  • dir_id,int not null FK目录

目录

  • dir_id,int not null主键
  • dir_name,varchar

article_directories

  • art_id,int not null FK文章
  • dir_id,int not null FK目录

文章,MyISAM

  • art_id,int not null主键
  • art_title,varchar
  • 内容,文字FULLTEXT索引

    INSERT INTO article_directories(art_id,dir_id)   SELECT DISTINCT a.art_id,k.dir_id     来自文章a,关键词k     在哪里比赛(a.content)反对(k.kword)

上述查询将识别文章可能属于的所有可能目录。这意味着文章可以属于 'sports'和'entertainment',例如。