我对数据库和SQL很陌生.我有一个任务,但我不知道如何解决这个问题.
假设我有一个名为的表Persons.它有以下列:( userId主键)userName和tags.
Tags是另一个表,只包含id和tagName.人可以有多个标签,例如:"足球","烹饪"等.
每个标签对应于Tag表格行.但我不确定如何实现这种关系.我怎样才能做到这一点?
我猜测它必须与外键有关,并使人标记列是一个外键数组.
您通常希望拥有一个关系表(这称为多对多关系,或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)
这样,您可以根据需要添加任意数量的标签,但标签数据不会存储在人员的行内.您可能会在一个字段中存储一系列值,但出于各种原因,这是一个非常糟糕的想法.