I understand how basic database relationships work but I am confused about the following/follower social media relationship in RDBMs.
Users table:
userId (PK)
email
name
Follow table:
followerId (FK referencing userId),
followeeId (FK referencing userId)
This seems to be the correct database design but what I really want to know if this is a one to many or a many to many relationship.
I think it is a many to many because a user can follow many users and be followed by many users. But it may be a one to many because each follow a user makes consists of one userId to follow. This isn't the perfect many to many example such as Students and Classes so it is confusing me. Thanks.
It looks to me like your database design is consistent with your use case.
You have many-to-many relation between users, where a user may :
To represent this relationship, you have created a bridge table, the follow
table. This is the relevant way to proceed.
The difference with a the typical Student/Class relation is that both objects being in relation are stored in the same table (users
) : this is why you end up with two foreign keys in the follow
table referencing user.userId
. But regardless of this specifity, this is conceptually the same type of relationship.