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
在专业的社交网络中,我将如何表示用户之间的联系? (比如 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