我正在开发一个应用程序,在该应用程序中,用户可以与其他用户建立两种关系中的一种——要么favoriting
他们,要么following
他们——我想反向操作,is favorited by
并且is being follow by
也会作为我想要的方法出现打电话。
在制作用户模型时我应该考虑哪些因素?具体来说,我应该有一个模型,即关系,它指定:
Relationships
user_1 | relationship_type | user_2
关系类型在哪里favoriting
?following
或者我应该有 2 个单独的模型:
Favorites
user_1 | user_2
Follows
user_1 | user_2
我对数据库不太了解,所以我能问一下在这两种潜在设置之间进行选择时的考虑因素是什么?2 比 3 更标准化还是更少?这有关系吗?在什么情况下?
更新
抱歉,这让我很震惊:假设有第三种关系,比如“reviews”/“reviewed_by”——问题是关于 3 个,而不是 2 个不同的双向关系类型。增加关系类型的数量会影响这一点吗?
Favorites
user_1 | user_2
Follows
user_1 | user_2
Reviews
user_1 | user_2