Mysql 两个不同的表是否应共享相同的相似/投票表
我现在的处境是,我有点怀疑什么时候我应该给出一个共享的“like”表,或者把它分成两个不同的表 该应用程序将以类似“墙”的方式显示两个视频/图像,就像Facebook和许多其他平台一样 如果用户已经喜欢某个图像或视频,则like按钮将被着色,以显示内容已经被喜欢 视频表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
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列的“组合”。