Я создаю веб-приложение для службы, используя ASP. NET core 3.0. Существует два типа пользователей приложения
- Пользователь, такой как администратор и посредник (поставщик услуг)
- Клиенты посредника
Я создал класс Реселлер с некоторой дополнительной информацией, указывающей c для реселлера
public class Reseller : BaseEntity
{
public string CompanyName { get; set; }
public virtual ApplicationUser User { get; set; } //login account of reseller
public virtual IList<ResellerCustomer> Customers { get; set; }
}
Это означает, что реселлер будет иметь логин, привязанный к этому классу.
Также у каждого реселлера может быть много клиентов, и его логин будет созданный посредниками, но они не будут иметь никакой дополнительной информации, однако я должен быть уверен, что смогу в любое время найти посредника вошедшего в систему пользователя, а также клиентов вошедшего в систему посредника. В будущем существует вероятность того, что будут прямые клиенты службы, не привязанные к каким-либо посредникам.
Поэтому я создал этот класс тоже
public class ResellerCustomer:BaseEntity
{
public virtual Reseller Provider { get; set; } // Please don't worry about name :)
public virtual ApplicationUser User { get; set; } //Login account of customer
}
Я оставляю класс ApplicationUser на его уровне минимум, поэтому он подходит для логинов посредников, администраторов и клиентов посредников
Я не уверен, смогу ли я достичь того, что я пытаюсь. Я могу go опередить и попробовать это, но у меня есть большой проект, и, имея некоторую уверенность, прежде чем мои руки испачкаются, сэкономит много времени.
Достаточно ли этого хорошо? Что было бы лучшим подходом.