所以我想建立一个网站,需要使用标签(你知道,输入描述这个页面的关键字)。
标签将最终存储在(a)行(s) MySQL (php将存储它们,只是一个额外的无用的信息),我们-我的团队-正在试图找出哪种方式是最快的方式来存储标签:
- 在相关的SQL表中有4个单独的列(考虑到我们将标签限制在4个,这是一个完全可行的解决方案)
- 有1列,这是一个逗号分隔的标签列表(然后我们可以选择改变限制)
- 搜索单个标签,或多个标签
- 在搜索中只匹配完全匹配(即标签"卡车"不应该匹配标签"消防车")
- 块标签(即用户可以搜索"landscape -waterfall")
谢谢你的建议。
注。我知道这篇文章,不,它根本没有帮助
假设您有一个Foo表,其中包含您想要标记的主要内容,我建议您添加一个tag表。标签有一个ID,标签字符串,也许还有一个描述字段,您可以在其中描述标签的实际含义。
然后创建一个名为FooTag的连接表,它有一个主键ID列、要标记的Foo记录的ID和要标记它的标签的ID。Foo和Tag的外键关系是为了保证完整性。
现在您可以一次找到1到N个标签的所有记录,您可以找到一个Foo被标记的所有标签,以此类推。而且每个Foo不限于四个标签。您不必在任何查询中指定四个不同的列来确定正在使用的标签。