2014-10-21 98 views
0

我正在创建一个模型,用户可以从购物车添加项目,创建附加到用户的订单。我想知道我是否以正确的方式开展这项工作。这似乎是一个相当常见的数据库设计。我是否需要与发票表的松散耦合,以存储问题列表,然后将订单连接到用户的发票号码?我是Django的新手,所以任何关于更好的建模系统的建议都会很感激。Django创建订单表单模型设计

这是我的模型到目前为止。哪种方法暂时有效,但是一旦添加购物车功能,它可能不会像需要的那样复杂。

REGION_CHOICES = (
    ('D', 'Domestic'), 
    ('I', 'International') 
) 

class Source(models.Model): 
    source = models.CharField(max_length=100) 

    def __unicode__(self): 
     return self.source 

class Role(models.Model): 
    role = models.CharField(max_length=100) 

    def __unicode__(self): 
     return self.role 

class Subscriber(models.Model): 
    name = models.CharField(max_length=200) 
    address_line_one = models.CharField(max_length=200) 
    address_line_two = models.CharField(max_length=200, null=True, blank=True) 
    city = models.CharField(max_length=200) 
    state_province = models.CharField(max_length=2, null=True, blank=True) 
    zip = models.CharField(max_length=25) 
    #is_international = models.BooleanField(default=False, help_text="hello") 
    region = models.CharField(max_length=1, choices=REGION_CHOICES) 
    source = models.ForeignKey(Source) 
    role = models.ForeignKey(Role) 

    def __unicode__(self): 
     return self.name 

class Issue(models.Model): 
    Volume = models.DecimalField(max_digits=3, decimal_places=1) 

    def __unicode__(self): 
     return unicode(self.Volume) 

class Order(models.Model): 
    subscriber = models.ForeignKey(Subscriber) 
    issue = models.ForeignKey(Issue) 

    def __unicode__(self): 
     return unicode(self.subscriber) 

回答

0

一个有效的方法是让您的应用程序使用最少的一组字段,然后在需要时添加新的应用程序。

随着django 1.7, migrations本地和易于使用。稍后您可以轻松添加表格和关系,只要您以正确的方式使用系统即可。