多对多关系类设计
本文关键字:关系 | 更新日期: 2023-09-27 18:03:22
如何处理以下场景。
我有一个Product
类有List<Orders>
和Order
类有List<Products>
。
有上述结构是好还是会在将来产生任何问题?
我想说在Product
类中有List<Order>
弊大于利。一个产品可以有成千上万的订单,这取决于你项目的规模。
在这种情况下,即使您只是想创建一个产品列表,您也必须在其中创建数千个Order
实例——这是一个完全无用的数据。
相反,您可以很容易地接受包含该产品的所有订单:
List<Order> _Orders = AllOrders.Where(_Order => _Order.ProductIds.Contains(YourProductId));
您真的不需要从Product
到Order
的链接,因为如果您想知道过去是否订购了特定的产品,那么您可以使用产品的ID搜索与每个订单相关的产品。从Order
到Product
的链接是有意义的,因为这样您可以看到哪些产品构成了订单。
您可以通过使用元组来链接Product和Order来解除Order和Product类型的耦合。
从Product
中删除List<Order>
,从Order
中删除List<Product>
,创建包含List<Tuple <Order, Product>>
的第三个类