Mysql 两个不同的表是否应共享相同的相似/投票表

Mysql 两个不同的表是否应共享相同的相似/投票表,mysql,sql,database,database-design,Mysql,Sql,Database,Database Design,我现在的处境是,我有点怀疑什么时候我应该给出一个共享的“like”表,或者把它分成两个不同的表 该应用程序将以类似“墙”的方式显示两个视频/图像,就像Facebook和许多其他平台一样 如果用户已经喜欢某个图像或视频,则like按钮将被着色,以显示内容已经被喜欢 视频表 id title desc url src ------------------------------------ 1 soms thing wwww .png id

我现在的处境是,我有点怀疑什么时候我应该给出一个共享的“like”表,或者把它分成两个不同的表

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

如果用户已经喜欢某个图像或视频,则like按钮将被着色,以显示内容已经被喜欢

视频表

id    title    desc     url    src
------------------------------------
 1    soms     thing   wwww    .png
id    title    desc      src
------------------------------
 1    soms     thing    .jpg
图像表

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表

id    title    desc     url    src
------------------------------------
 1    soms     thing   wwww    .png
id    title    desc      src
------------------------------
 1    soms     thing    .jpg
投票表共享(type_fk标识它是哪种类型,1表示图像2表示视频)

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


您认为哪种方法更好,甚至第三种方法更好?

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


我甚至会将视频和图像放在同一个名为“内容”的表格中,看看你的所有栏目都是一样的。

我想了想,但你看,有两种以上的内容类型,还有5种以上的文章,这些表格非常简化:)但你可以推荐一个表格给喜欢的人,这也是我认为更好的解决方案,它真的简化了alot@iiiml0sto1如果你有像
文章
图像
视频
这样的内容,可能是
音乐
等等。我会把它们分成几类:
图像
视频
音乐
媒体
,因为实际上你需要的唯一栏目就是
id
标题
描述
类型(enum)
url(但改名为src)
,如果您知道如何使用MIME类型检测,则存储文件扩展名是过时的。对于其他类型的内容,我会保留适当的表格,除非它们也可以进行分类。这让我思考了一下,谢谢你的帮助。我还打算添加一条关于这一点的评论——你只有两种类型的内容,但这在将来可能会扩展,你不想继续添加新的表格。我肯定会使用包含内容类型引用的单一内容表。如果必须使用
content\fk
返回到视频,代码会变得混乱。我已经给出了答案,但我将在这里详细说明。如果您选择我的方法,这意味着将两个表减少为
内容
投票
,您可以将内容类型存储在
内容
表中,从而将其从
投票
中删除,因为这是一种完全反模式,因为您正在将内容信息存储在一个表中,该表旨在保留投票信息。无论您选择哪种方式,都要去掉
id
,因为有一个“自然的”
主键
,它是2列或3列的“组合”。