编辑:我想我对这个问题的回答没有我想象的那么清楚。我知道如何搜索多个关键字,但我不知道如何为同一项分配多个关键字:
我正在制作一个期刊文章数据库,目的是让人们可以通过关键词搜索它。虽然让人们搜索多个关键词相当容易(收集所有包含这个术语和那个术语的文章),但我还没有找到/看到为每篇文章分配多个关键词的方法。举一个简单的例子:
项目 1 是“闪亮的”
项目 2 是“蓝色”
项目 3 是“闪亮的”和“蓝色的”
项目 4 是“圆形”且“有光泽”
我希望用户能够搜索“shiny”并出现项目 1,3,4,或者搜索“blue”并出现项目 2,3 等等。
@David W. Fenton 提到了“N:N 连接表”。我不知道那是什么,但他准确地描述了我想要做的事情:“将多个属性存储在一个字段中”,好像这是不可能的,我以为那是一种并不少见的用法。
答案1
常见的用法是使用字符封装文本,使得单词的两侧都有标记,而空白条目仅具有其中一个封装符。通过在末尾添加关键字和标记来附加新关键字。
问题在于封装标记不能出现在数据中,因此它不能是典型的字母或标点符号,否则将不可靠。您还可能受到数据字段大小的限制。
正确的用法是创建一个新表,可能名为 KEYWORDS,其中包含字段 ID、journalID、keyword。字段journalID
将是特定期刊文章的 ID。ID
将是一个唯一的自动编号字段。Keyword
将是一个单一的关键字。
然后您可以使用 JOIN 进行搜索。
答案2
我知道这很蹩脚,但它确实满足了我的要求:我所要做的就是选择一个关键词,然后单击“主页”>“选择”>“包含”,这样就只显示包含该词的文档。我确信这不是正确的方法,但它满足了我的所有需求。