当我尝试使用两个实体之间的多对多关系创建数据库方案时,我想通过SQLite提交有关序列化的问题:
我想将订单和产品与OrderBill的链接:
我为Order,Product和OrderBill创建了我的Pojos。 但对于具有以下属性的OrderBill:
但我坚持使用这些实体。这样做,我需要保留三个List:
<OrderBill>
<Order>
<Product>
如果我想获取产品的订单列表,我只需要检索List<OrderBill>
Order = order
的所有产品。
但我需要保持这些信息:
public class DataStore {
private List<Order> myOrders;
private List<Product> myProducts;
private List<OrderBill> myOrderBills;
public void add_product(Order o, Product p, int quantity) {
myOrderBills.add(new OrderBill(o,p,quantity));
}
在DAO
中,我确实喜欢这样:
public OrderBill insert(OrderBill o) {
ContentValues values = new ContentValues();
values.put(COL_NAME_ID_ORDER, o.getOrder().getId());
values.put(COL_NAME_ID_PRODUCT, o.getProduct().getId());
values.put(COL_NAME_QUANTITY, o.getQuantity());
long id = db.insert(TABLE_ORDER_BILL, null, values);
o.setId_order_bill(id);
return o;
}
使用DAO
模式,我将OrderBill
对象的产品和订单转换为id_product和id_order,我做得对吗?我没有测试,但我想知道这是否是在我的应用程序中保持多对多关系的好方法?
因为在我的应用中,我想允许多个订单与多个产品相关联,但不能复制相同数量的产品。
您是否看到了另一种处理方式?