相关视频数据库表结构

问题描述 投票:0回答:1

我正在尝试找出最适合相关视频的表格结构。我有一个表格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)。这项工作已经完成,但是,我非常期待实现更适当的解决方案。

只是在寻找关于哪种好方法的建议。

我正在尝试找出最适合相关视频的表格结构。我有一个视频表,其中包含有关所有视频的详细信息。我正在计划...

mysql sql database
1个回答
0
投票

我建议使用最后列出的选项,即建立一个桥接表来存储视频之间的N-M关系。

© www.soinside.com 2019 - 2024. All rights reserved.