我如何构建我的模型结构让我陷入困境。首先,我将解释我的情况。我在eBay上以直销的方式销售商品,所以当我在ebay上订购新订单时,我会在我的合作伙伴商店订购。
我想创建应用程序,我可以从两个平台组织所有订单。我将使用eBay API,PayPal API,PrestaShop API。
我的问题是:如何规划模型的结构?
一个没有关系的模型:
# eBay App
class Order(models.Model):
date = models.DateTimeField(default=timezone.now, editable=False)
paid = models.BooleanField(default=False)
sales_manager_id = models.IntegerField(unique=True)
shop_order_id = models.IntegerField(unique=True) # order ID from webshop
shop_order_invoice = models.IntegerField(unique=True) # invoice num from webshop
很少有关系的模特:
# eBay App
class ebayOrder(models.Model):
date = models.DateTimeField(default=timezone.now, editable=False)
paid = models.BooleanField(default=False)
sales_manager_id = models.IntegerField(unique=True)
# shop app
class shopOrder(models.Model):
date = models.DateTimeField(default=timezone.now, editable=False)
shop_order_id = models.IntegerField(unique=True) # order ID from webshop
shop_order_invoice = models.IntegerField(unique=True) # invoice num from webshop
ebay_order = models.ForeignKey(ebayOrder)
我必须说我已经在这个项目中创建了几个应用程序(我正在根据本地数据库中的产品生成ebay列表)所以我不会仅为shopOrder需求创建新的应用程序。
更新
我只提供了我的模型的基本版本。会有更多的领域。
#eBay App
date, paid_date, amount, sales_manager_id, tracking_number, comment
#shop App
order_id, shop_order_id, invoice, products_amount, shipping_amount, shipping_date
#ebay App - customer_address model, shipping addres etc
order_id, nick, email, name, street1, street2, postcode, city, phone, state, country, company, vat, comment
答案 0 :(得分:1)
我更喜欢没有关系的一个模型。 出于性能原因,它更好,因为您只需一个SQL查询就可以获取所有数据。实际上,使用Fat模型是django dev中的最佳实践之一。 在您的情况下,我不确定订单的多个条目是否可以具有相同的日期,付款,sales_manager_id字段。因此,每次用户更新订单时,您都会创建一个新条目,复制前3个字段并填写其余字段。如果是这样的话,那么肯定会破坏你的模型。在同一个表中的条目之间复制字段是不好的做法。