我正在构建一个API,使用Django/DRF和Postgres为一个应用程序接受预订温泉,沙龙等。
我希望有大量的供应商(spas)提供类似服务的菜单,但价格不同。
Provider 1 Menu
---------------
Pedicure ($50)
Manicure ($40)
Thai Massage ($100)
Balinese Massage ($120)
Provider 2 Menu
---------------
Pedicure ($60)
Manicure ($50)
Head Massage ($120)
...
Provider 35000 Menu
---------------
Pedicure ($25)
Manicure ($25)
Balinese Massage ($90)--我试图找出适当的模型来表示这种情况,
这就是我想出来的:
class ServiceCategory(models.Model):
Category = models.CharField(max_length=100, blank=True)
def __unicode__(self):
return self.Category
class Service(models.Model):
Category = models.ForeignKey(ServiceCategory)
Name = models.CharField(max_length=100, blank=True)
def __unicode__(self):
return self.Name
class Provider(models.Model):
Manager = models.OneToOneField(User)
Category = models.ForeignKey(ServiceCategory)
Name = models.CharField(max_length=100, blank=True)
def __unicode__(self):
return self.Name
class MenuItem(models.Model):
Provider = models.ForeignKey(Provider)
Service = models.ForeignKey(Service)
Price = models.DecimalField(max_digits=9, decimal_places=2, db_index=True)
def __unicode__(self):
return self.Provider.Name + "-" + self.Service.Name此结构将如何执行以提供下列类型的查询:
直观地说,我担心MenuItem的表在短时间内增长很快,比如1到400万行,AJAX和Mobile也会通过API访问这些数据。
,为性能建模的更好方法是什么?
可能是去规范化,PostgreSQL设置,(Mem)缓存,还是分解表?
发布于 2015-06-24 02:22:02
https://stackoverflow.com/questions/31015075
复制相似问题