2012-07-07 59 views
4

我在谷歌應用引擎上使用django nonrel/djangoappengine。無法直接指定複合主鍵。但是應該可以模擬這種行爲。我想知道什麼是最好的方法。綜合主鍵Google應用引擎(django)

問題

求索以下數據模型

class AccumuatedSales(models.Model): 
    salesman = models.ForeignKey(Salesman) 
    year = models.Postiveinteger() 
    totalSales = models.PositiveInteger() 

我想(業務員,年)被視爲一個主鍵。也就是說,如果我做

asby1 = AccumulatedSales(salesman='Joe', year=2010, totalSales=100) 
asby1.save() 
asby2 = AccumulatedSales(salesman='Joe', year=2010, totalSales=200) 
asby2.save() 

的 '表' AccumulatedSales應該包含一個一行。所以第二個保存覆蓋第一個。

可能的解決方案

class AccumuatedSales(models.Model): 
    key = models.CharField(primary_key=True,, default=None, editable=False) 
    salesman = models.ForeignKey(Salesman) 
    year = models.Postiveinteger() 
    totalSales = models.PositiveInteger() 

    def save(self): 
     self.key = someHashFunction(self.salesman_id, self.year) 
     super(AccumulatedSales, self).save() 

問題

  • 是這種方法好還是 「合適的人」?
  • 什麼是字段鍵的最佳數據類型?就我個人而言,我想擁有128位的som字段,但這不是我所知。

回答

0

這看起來像一個很好的解決方案。