gpt4 book ai didi

sql - 在数据库中存储标签。存储标签一次还是多次?

转载 作者:可可西里 更新时间:2023-11-01 06:37:17 24 4
gpt4 key购买 nike

我想更清楚地说明在数据库中存储标签的 toxi 方法——在 SO 的其他地方提到过。

数据库模式是:

Table: Item
Columns: ItemID, Title, Content

Table: Tag
Columns: TagID, Title

Table: ItemTag
Columns: ItemID, TagID

这可能是个愚蠢的问题(但我不知道答案)...表格标签中的每个条目是否应该有一个唯一的标题。即,我只存储一次标签还是每次使用时都存储它?

为了说明,我最终应该得到以下两个表格中的哪一个:

TagID     Title
1 Fish
2 Cat
3 Dog

TagID     Title
1 Fish
2 Fish
3 Cat
4 Fish
5 Dog
6 Cat

如果使用第一个表,在输入标签之前,我首先必须运行 sql 语句来确定它是否存在,对吗?

我们将不胜感激任何帮助。最近由于一起破解和索引,我的手指被烫伤了,想开始正确地掌握基础知识。

最佳答案

基础知识是您需要像在第一种情况下显示的那样存储标签。这有利于检查标签是否存在(因为在第二种情况下,对于现有标签,您的数据库将返回与标签外观一样多的行)并且有利于按标签检索项目(通过一个标签 ID 选择项目 ID 比选择项目更好id 由一组具有相同表示意义的 tag_id 组成)。

如果您因为索引而烧伤了手指 - 您应该始终检查查询是如何执行的(对于 mysql,它是 EXPLAIN/DESCRIBE SELECT)。

关于sql - 在数据库中存储标签。存储标签一次还是多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1480949/

24 4 0