包含表行值数组的SQL列

jyr*_*and 6 sql foreign-keys

我对数据库和SQL很陌生.我有一个任务,但我不知道如何解决这个问题.

假设我有一个名为的表Persons.它有以下列:( userId主键)userNametags.

Tags是另一个表,只包含idtagName.人可以有多个标签,例如:"足球","烹饪"等.

每个标签对应于Tag表格行.但我不确定如何实现这种关系.我怎样才能做到这一点?

我猜测它必须与外键有关,并使人标记列是一个外键数组.

JNK*_*JNK 9

您通常希望拥有一个关系表(这称为多对多关系,或M:M).

Persons(id int, name varchar(40)...)

Tags(id int, name varchar(40)....)

PersonTags(id int,
           personid FOREIGN KEY References Persons(id), 
           TagId FOREIGN KEY references Tags(id))
Run Code Online (Sandbox Code Playgroud)

这样,您可以根据需要添加任意数量的标签,但标签数据不会存储在人员的行内.您可能会在一个字段中存储一系列值,但出于各种原因,这是一个非常糟糕的想法.