我目前有一个非常简单的MySQL数据库(articlesDB),其中包含1个表(文章)和6行,因此设置了:
-------------------------------------------------------------------------------------
id (int) | articletitle | articleorganization | articledate | articleurl | articletags
-------------------------------------------------------------------------------------
数据库的目的是存储有关文章的信息以及存储已应用于这些文章的“标签”,以便通过表单通过任何查询组合搜索文章。
id自动递增,但文章标题,组织,日期,网址和标签都是从使用PHP构建的条目表单输入的。问题是需要有一种方法来强制执行正确的标签拼写应用于文章,所以我认为复选框将是要走的路。这样,只能应用正确(且一致)拼写的标签。
但是,我发现,为了以这种方式实现复选框,我实际上需要在数据库中有多个表;一个用于文章数据,一个用于标记,另一个用于交叉引用标记和文章数据://文章信息
----------------------------------------------------------------------
id | articletitle | articleorganization | articledate | articleurl
----------------------------------------------------------------------
//标记信息
--------------
id | articletag
--------------
//文章和标签参考
-------------------------------
id | articleid | articletagid
-------------------------------
在此之后,我不确定如何继续构建MySQL查询的逻辑。
我想,我需要将数据插入3个单独的表中,但我不知道究竟需要去哪里。
非常感谢任何关于在哪里寻找的帮助或线索。
答案 0 :(得分:1)
最简单的方法是让用户键入标签并发布表单。在表单处理文件中有一个SELECT查询搜索Tags表中的所有标签。如果它们不匹配则显示错误消息,否则在articles表中创建新条目,最后添加许多TagOnArticle(或任何你称之为的)条目。
以下是我如何模拟这种情况:
现在,如果您想要检索所有有效标签,请使用:
SELECT tag_name FROM Tag
并将结果与用户输入的内容进行比较。
答案 1 :(得分:0)
看起来您想要设置字典数据库。我无法帮助那里。但是,你提到了逻辑...我假设你指的是提取最接近的匹配?
不幸的是,这项工作最好的事情是“模糊逻辑”(人工智能),这在我看来相当繁琐。最好的事情是Levenstein函数。