2个不同的表应共享相同的点赞/投票表

时间:2019-02-13 13:25:21

标签: mysql sql database database-design

我处于一种不确定的状态,何时应该给共享的“赞”表或将其拆分为两个不同的表。

该应用程序将像Facebook和许多其他平台一样以“墙”的方式显示视频/图像。

如果用户已经喜欢图片或视频,则“喜欢”按钮将变为彩色,以表明内容已被喜欢。

视频表

id    title    desc     url    src
------------------------------------
 1    soms     thing   wwww    .png

图片表

id    title    desc      src
------------------------------
 1    soms     thing    .jpg

选项1两个表

投票表视频

id    video_fk    user_fk    voted
-----------------------------------------
 1        1           1          2  

投票表图片

id    image_fk    user_fk    voted
-----------------------------------------
 1        1           1          2  

选项2 1表

共享投票表(type_fk标识为哪种类型,视频为2,视频为1)

id    content_fk    user_fk    type_fk    voted
-------------------------------------------------
 1        1           1          2          2

2个表的问题是,无论何时用户不喜欢内容,都必须查找(当在墙上滚动显示许多结果时),我将不得不将结果存储在具有ID和标识符的多维数组中确定它是哪种内容类型(图像或视频)。

您会是更好的方法,甚至是第三种方法?

1 个答案:

答案 0 :(得分:1)

您应该保留尽可能少的表,因为这样可以减少请求数量和代码复杂性。

我什至可以看到视频和图像都放在同一个表中,称为“内容”,看看几乎所有的列都一样。