首页 > 解决方案 > 如何建模这种关系

问题描述

我正在创建一个消息应用程序,用户必须能够添加联系人。联系人是一对两个用户。

第一个问题:

我的 User 类中有以下属性:

    Guid AccountId { get; set; }
    string Name { get; set; }

    List<Contact> Contacts { get; set; }
    List<Chat> Chats { get; set; }

现在我想为 Contact 类建模,这就是我想出的:

    Guid ContactId { get; set; }
    string Name { get; set; }

    User UserA { get; set; }
    User UserB { get; set; }

我对 Contact 类的问题是每个用户都有一个联系人列表。通过此联系人,一个用户可以访问另一个用户的联系人和聊天。

这是一个有效的担忧吗?如果是这样,我该如何防止这种行为发生?

第二个问题:

如何以更具描述性的方式命名 UserA 和 UserB?用字母或数字来数东西感觉很脏。

标签: c#asp.netasp.net-mvc

解决方案


您的 Contacts 类创建了一个循环引用问题,我不鼓励这样做。Contact 类不需要具有 UserA 和 UserB 属性。Contact 类只负责处理 Contact 数据:

  1. 帐户ID
  2. 姓名
  3. 昵称
  4. 被列入黑名单

在这种情况下,您的第二个问题不再相关,并且您已强制执行责任。


推荐阅读