Class 社交媒体平台图

Class Diagram for Social Media Platform

在专业的社交网络中,我将如何表示用户之间的联系? (比如 Linkedin)我应该创建一个连接 class 吗?对于 2 个用户之间的每个连接都有一个实例,或者这是多余的?用户 class 是否应该有自我联想(反身联想)?

您的 User class 将有 collection 个以下对象:

public class User
{
    // ... the other code is omitted for the brevity
    public IEnumerable<User> Followings { get; set; }
}

因此,如果您的数据库具有 Following table:

CREATE TABLE Followings(
    User_Id INT NOT NULL, 
    Following_Id INT NOT NULL,
    DateCreated DATE NOT NULL,
);

不要忘记在 table 中创建约束和外键。那么就有可能 Following class:

public class Followings {
    public UserId int { get; set; }
    public FollowingId int { get; set; }
    public DateCreated DateTime { get; set; }
}

然后您可以轻松编写以下查询:

select * from Following where UserId = x.id -- or vice versa