您应该将“喜欢”表拆分为多个表吗?

问题描述 投票:0回答:1

假设我有一个类似于Instagram的社交网络应用程序。对于我的数据库模式,我将执行以下操作:

CREATE TABLE `likes` (
  `like_id` int PRIMARY KEY AUTO_INCREMENT,
  `user_id` int,
  `type` ENUM ('POST', 'COMMENT'),
  `target_id` int
);

其中target_id是指向特定帖子或特定评论的外键。将帖子和评论喜欢合并到单个表中并按ENUM类型区分它们的设计不好吗?最好创建两个没有区别的表:commentLikes和postLikes?

[请记住,我将来确实会预见到,他们可能会向应用程序添加更多他们喜欢的功能,例如物品或食谱等

mysql sql database-design database-schema
1个回答
1
投票

您的方法很好。不幸的是,您要执行的操作在SQL中并不简单。理想情况下,您希望在target_id和它引用的表之间具有外键关系。对于您的结构,这是不可能的。

但是,您的方法确实具有简洁的优点-在表定义和基础表布局中均如此。代价是无法声明外键关系。

© www.soinside.com 2019 - 2024. All rights reserved.