如何在SQlite数据库中存储同一类别的多个字符串?

时间:2017-06-09 14:38:53

标签: sqlite

我需要为唯一ID分配多个标签。最终目标是使用某些标签搜索ID。

我应该如何存储标签? 这不是一个大数据库,一个简单的解决方案是最好的。

ID                               | Tags
-----------------------------------------------
b6e490a44fcd5cc92f3d0f97a23f1c83 | foo bar bla
d41d8cd98f00b204e9800998ecf8427e | ble blu bla

1 个答案:

答案 0 :(得分:1)

您可以保留当前的表格设计,并使用全文搜索在export class AppComponent{ styleObject(): Object { if (/** YOUR CONDITION TO SHOW THE STYLES*/ ){ return {height: this.height,width: this.width} } return {} } } 列中查找单个标记。但如果搜索术语和/或标签可能跨越多个单词,则可能会出现问题。

更安全的选择可能是规范化您的表格,并在表格中为每个标记分别添加一条记录,如下所示:

Tags

现在,如果您想知道哪些ID包含ID | Tags ----------------------------------------------- b6e490a44fcd5cc92f3d0f97a23f1c83 | foo b6e490a44fcd5cc92f3d0f97a23f1c83 | bar b6e490a44fcd5cc92f3d0f97a23f1c83 | bla d41d8cd98f00b204e9800998ecf8427e | ble d41d8cd98f00b204e9800998ecf8427e | blu d41d8cd98f00b204e9800998ecf8427e | bla foo标记,则可以使用以下简单查询:

bar

请注意,现在SELECT DISTINCT ID FROM yourTable WHERE Tags IN ('foo', 'bar') 列不再是唯一的,因此无法作为主键。相反,请尝试添加新列作为主键列:

ID