如何使用由带破折号的序列数字组成的 ID 引用多对多关系?



One "Data"表对许多"评论"表格在许多情况下,注释应用于一系列data_id。例如,Comments行连接到data_id的(3- 60,90,100 -130)。应该如何实现数据库设计、关系和数据类型。必须易于访问ID的连接,搜索等。试图创建这样一个关系来保存每个评论表行的多个data_id。在数据库结构和数据类型方面,这将如何实现?

这可能有助于您阅读/观察SQL关系类型:一对一,一对多和多对多。

在您的情况下,如果一个评论行链接到许多数据行,但数据行只有一个评论行,您应该将评论id放在数据行(一对多)。

如果评论行链接到许多数据行,并且数据行可以链接到许多评论,则应该创建第三个表,其中包含数据行id和评论行id,以链接它们(多对多)。

一对多查询:

SELECT * FROM data
LEFT JOIN comment ON data.comment_id = comment.id
WHERE comment.id = 1

一对多查询

SELECT * FROM data
LEFT JOIN data_comment ON data. id = data_comment.data_id
LEFT JOIN comment ON data_comment.comment_id = comment.id
WHERE comment.id = 1

"data_comment"作为具有data_id和comment_id的关系表