只使用一个表来存储多种类型的关系,效率高吗?

gmxoilav  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(352)

假设我有一个表名 Post 它存储喜欢和评论等,所以我想通过在一个单独的列中存储实际的关系来共享一个表,例如表:-
帖子
邮政编码
职位描述
然后是关系表:
邮局有
邮政编码
用户id
关系(字符串:“like”、“comment”、“shares”)等
所以通过单个表我们可以存储多个关系,所有的关系都可以通过应用程序级别进行管理,不需要创建单独的表,我想知道这是个好主意,还是以前有人这么做过?有什么折衷办法吗?

taor4pac

taor4pac1#

很难说得很具体,但您展示的设计通常用于帖子和用户之间的“多对多”关系。
在应用术语中,这可能意味着“一个帖子可以属于几个不同的用户;每个用户可能有不同的“关系”,“一个用户可以创建多个帖子”。
这可能是真的,也可能不是真的——很难从你的问题中分辨出来。
如果你的意图是“一个用户可以创建许多帖子。每个岗位可以有很多关系。一篇文章只属于一个用户。“,您可以将“user\u id”添加到posts表中。

vhipe2zx

vhipe2zx2#

听起来像是在考虑父子表的关系,因为一篇文章可能会有多个赞和评论。
或者,如果你决定变得更加花哨(疯狂的lol),并且希望能够有关于评论的评论,或者甚至是关于评论的评论(例如,深入到层次),那么你可能希望以某种方式使用一个表来处理所有可能的情况,例如:posts:post\u id parent\u post\u id\u if\u applied post\u description user\u id关系(字符串:“original”、“like”、“comment”、“shares”)等
可能还有一个级别字段来说明你的级别,比如1代表一篇原创文章,2代表一篇关于原创文章的观点或评论,3代表一篇关于#2的观点或评论等等。

相关问题