我正在尝试找出最适合相关视频的表格结构。我有一个表格videos
,其中包含有关所有视频的详细信息。我正在计划视频推荐的新功能,现在将手动创建。
[我正在考虑将其存储在视频表videos.relatedVideos
内的表列中,并存储相关视频ID的JSON数据。但是,我也希望它向后兼容。
因此,如果将ID = 5
的视频添加为与ID = 10
的视频的相关视频,则表结构为
| id | videoId | ..... | relatedVideos|
| 1 | 10 | ..... | [5] |
| 2 | 4 | ..... | [3,6,7] |
我还希望具有ID = 10
的视频充当具有ID = 5
的视频的相关视频。一种方法是在我为#5
]创建一个条目时,在videos
表上为#10
创建一个新条目。
| id | videoId | ..... | relatedVideos| | 1 | 10 | ..... | [5] | | 2 | 4 | ..... | [3,6,7] | | 3 | 5 | ..... | [10] |
但是我正在寻找更合适的东西,可以在视频之间建立多对多关系。
一个选项是创建一个表relatedVideos
,并为每个与主视频相关的相关视频创建新条目,但在为任何特定视频添加/编辑相关视频时,可能会导致记录重复。
|id | videoID | relatedVideoID| |1 | 5 | 10 | |2 | 5 | 15 | |3 | 5 | 13 | |4 | 13 | 19 |
[现在,我正在做的是,如果我正在浏览视频页面
#13
,我将执行两个查询(Select relatedVideoID from relatedVideos where videoID = 13)
和(Select videoID from relatedVideos where relatedVideoID = 13)
。我相信我可以使用SQL连接或联合做类似的事情,但我还没有探索这些选择。
然后我将两个数组的结果合并以获得[19, 5]
(我仅保留不同的ID)。这项工作已经完成,但是,我非常期待实现更适当的解决方案。
只是在寻找关于哪种好方法的建议。
我正在尝试找出最适合相关视频的表格结构。我有一个视频表,其中包含有关所有视频的详细信息。我正在计划...
我建议使用最后列出的选项,即建立一个桥接表来存储视频之间的N-M关系。