我正在开发一个PHP / Jquery自动提示工具,它将查询一个大型标签表,但我需要 对db模式的一些建议,它将返回相关标记以及基于匹配的结果。
例如:
我输入'Web':
结果
'网络开发者'
'网页设计师'
'网络分析师'
以及相关标签......
'PHP Developer'
' Flash Programmer'
所以显然每个标签都需要有一个列,其中包含某种关系或父母价值......最好的方法是什么?
谢谢!
---更新-----------------
当然 - 再次感谢你的帮助!这是表格..
Id TagName
1 Web开发人员
2 Web Designer
3网络分析师
4 PHP开发人员
5 Flash编程器
TagId RelatedTagId Strength
1 4 0
1 5 7
由于'Flash Programmer'的强度值是7,我希望它出现在PHP程序员之前..(希望格式足够清晰......)
再次感谢!
答案 0 :(得分:1)
表格标签
Create Table Tags (Id int, TagName varchar(50))
Table RelatedTags(字段FK到标签(Id))
Create Table RelatedTags(TagId int, RelatedTagId int)
查询选择标记匹配的输入和相关标记
SELECT Id, TagName, Strength
FROM Tags
WHERE TagName LIKE 'Web%'
UNION
SELECT Id, TagName, Strength
FROM Tags
WHERE tags.Id IN (SELECT RelatedTagId
FROM Tags t
JOIN RelatedTags r
ON (t.Id = r.TagId)
WHERE t.tagName LIKE 'Web%')
ORDER By 3 DESC