Oli*_*J90 8 sql database postgresql database-design
在我的应用程序中,我有"文章"(类似于帖子/推文/文章),标有描述性预定义标签:即"困难","简单","红色","蓝色","商业"等
这些可用标签存储在一个表中,称之为"标签",其中包含所有可用标签.
每篇文章都可以使用多个标签进行标记,可通过自定义管理界面进行编辑.
简单地将每个实体的标签捆绑到每个标签的ID的字符串化数组中并将其与文章记录一起存储在我的"文章"表中可能很诱人:
id | title | author | tags
---+-------+--------+-------------
1 | title | TG | "[1,4,7,12]"
Run Code Online (Sandbox Code Playgroud)
虽然我确定这是一个糟糕的主意,原因有很多,有没有合理的理由去做?
我想你应该阅读有关数据库规范化的内容并自行决定.简而言之,您的提案存在许多问题,但您可能认为可以与他们共处.
最明显的是:
tags.append(newTag)
.简而言之,所有这些操作变得更加困难和繁琐.规范化旨在克服这些问题.做你所说的IMO的唯一原因可能就是你将数据捕获为一次性而且只是信息性的 - 也就是说,对用户而言是有意义的,而不是系统本身.这有点像说它最好避免(再次,IMO).