У меня есть Entity структура как нижеEntity Framework моделирование данных лучшие практики
public abstract class Entity
{
public int Id { get; set; }
}
public class User : Entity
{
public ICollection<Product> Products { get; set; }
}
public class Warehouse : Entity
{
public ICollection<Product> Products { get; set; }
}
public class Product : Entity
{
public Warehouse Warehouse { get; set; }
public User User { get; set; }
}
Как вы можете видеть Пользователь может есть продукты и склад также может иметь продукты. Таким образом, структура Entity помещает 2 внешних ключа в таблицу Product, которая может быть нулевой.
Мы также могли бы достичь похожую структуру по кусочкам различного моделирования объекта, как показано ниже
public class User : Entity
{
public ICollection<UserProduct> Products { get; set; }
}
public class Warehouse : Entity
{
public ICollection<WarehouseProduct> Products { get; set; }
}
public class Product : Entity
{
}
public class WarehouseProduct : Entity
{
public Product Product { get; set; }
public Warehouse Warehouse { get; set; }
}
public class UserProduct : Entity
{
public Product Product { get; set; }
public User user { get; set; }
}
Первый дизайн выглядеть проще, не вводить новые entitties, но не уверен, что это лучше или нет.
Я пытаюсь найти, что лучше, или что обрезание делает его одним из лучших, чем другие.