如何添加对多个"tags"的引用?

How to add references to multiple "tags"?

在我的数据库中,我有一个 table 作为“标签”。所以,在我的主 table 中,我想给每个项目多个标签。

例如,如果我的主要 table 是 dog,我想为 small brownmean 添加标签。但是在我的 tags table 中,我可能有 50 个可能的标签。如果我愿意,每个 dog 可以有任意多个标签。

我该怎么做?

我真的不想为主 table 中的每个标签创建一列布尔值。有没有办法在一个字段中指定多个标签?

(我不太习惯使用数据库,所以这听起来可能很愚蠢。)

最后的目标是能够得到所有匹配特定标签的狗。

您描述的是狗和标签之间的多对多关系。您通常会用桥 table 表示它,它引用另外两个引用 table,存储狗和标签。

假设引用 table 的结构如下:

create table dogs (
    dog_id int primary key,
    name text
);

create table tags (
    tag_id int primary key,
    name text
);

您可以将桥 table 创建为:

create table dogs_tags (
    dog_id int references dogs(dog_id),
    tag_id int references tags(tag_id),
    primary key (dog_id, tag_id)
);