【发布时间】:2020-08-19 08:42:55
【问题描述】:
我正在开发一款应用程序,该应用程序可以跟踪您正在观看的电视节目以及您观看过该节目的哪些剧集。
目前我可以跟踪哪些用户正在观看哪些节目,这比较简单,结构如下:
所以我有一个User 表,其中有一个主键id,用于标识该用户以及有关该用户的其他一些不相关的信息。
在此之后,我有另一个表TV_SHOWS,其中存储了一个user_id 作为外键,其中包含有关节目的一些信息,最重要的是一个名为user_watching 的字段,它给出了一个关于用户是否正在观看该节目的布尔值。
它的工作原理是这样的,当用户单击按钮添加显示时,一行将插入到 TV_SHOWS 表中,其中包含所有信息和 user_watching = true 在某些时候用户可能希望停止观看,以便他们可以单击另一个按钮来简单地更新user_watching = false。
现在我希望扩展这个想法,以便用户可以跟踪他们观看过的电视节目的哪些季节和剧集,一个电视节目由多个季节组成,并且在大多数情况下每个季节都由多个剧集组成。
我想要一些关于如何最好地构建这个数据库模式的帮助。
我最初认为我可以按照以前的方式进行扩展,例如:
我只需为季节和剧集添加两个 ID,这样我就可以通过查看用户是否观看了该季节的所有剧集来判断用户是否观看了该季节,以及通过检查他们是否观看了节目来判断他们是否观看已经观看了该节目的所有季节,但我认为这似乎不是一个好习惯。
我可以尝试为节目制作一张桌子,为每季制作一张桌子,为剧集制作一张决赛桌,但我不确定我会在哪里“追踪”用户是否看过其中的一张,它是否必须在那个特定的表还是我需要另一个表来跟踪它?
【问题讨论】:
标签: sql database design-patterns database-design database-schema