我想在一个功能中添加主题标签,我只想将它们存储为每个对象的数组,然后让用户使用自己的标签(一组标签)搜索项目。然后执行搜索。有没有办法做到这一点?
例如: 数据库中的标签:
row 1: ['red', 'blue', green']
row 2: ['orange', 'blue']
row 3: ['blue', 'green']
然后用户搜索会像:
['red', 'green']
,结果将是第1行和第3行。
这是一种非常缓慢且低效的存储方式吗?如果我以这种方式为用户提供多种搜索选项,我将如何获得最佳性能?
答案 0 :(得分:1)
以下是两种方法:
tag
(如果您想稍后修改标签元数据,则为tag_id),另一列是与标签关联的object_id
。您可以拥有与同一对象关联的多个标记,以及与同一标记关联的多个对象。然后,您可以在此表上使用标准join
和in filter来获取与您请求的标记匹配的所有对象ID。这是不支持数组的数据库管理系统通常使用的方法。