Модель самореференции - продукт со списком продуктов - PullRequest
0 голосов
/ 07 октября 2018

В настоящее время работает над веб-интерфейсом API, который обрабатывает заказы продуктов клиентами, а именно шкафами.

Каждый продукт, среди таких атрибутов, как цена, размеры и категория, имеет список продуктов, к которым он принадлежит, и другойсписок продуктов, которые составляют этот конкретный продукт.

Я рассматриваю это как модель с самостоятельными ссылками и поэтому написал этот первый черновик для класса модели

public class Product
    {
        public int ID { get; set; }
        public string Name{ get; set; }
        public double Price { get; set; }
        public double Height {get ; set; }
        public double Width {get ; set; }
        public double Depth {get ; set; }
        public virtual ICollection<Product> Parts{ get; set; }
        public virtual ICollection<Product> PartIn{ get; set; }
    }

Это правильноподход?Особенно учитывая, что позже мне нужно будет сделать эти звонки

api/Product/{id}/Parts
api/Product/{id}/PartIn

, которые возвращают все части одного продукта и продуктов, в которых он находится.

1 Ответ

0 голосов
/ 07 октября 2018

Это, вероятно, хороший подход.Единственная проблема, которую я вижу, заключается в том, что у вас есть избыточная информация, хранящая как родителей, так и детей.Это сделает обновления более сложными.Например, если вы заменяете дочернюю запись, вы должны обязательно обновить соответствующие родительские записи как в старом, так и в новом дочернем продукте.

Альтернативой может быть сохранение только списка дочерних или родительских продуктов.,Это означает, что если вы только заботитесь о детях, вам нужно выполнить поиск по всем продуктам, чтобы найти родителей данного продукта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...