在GeoDjango项目中存储餐馆类别

时间:2014-10-04 10:24:36

标签: django database-design django-models

我正在为iPhone应用程序制作geo django后端。 iPhone应用程序将用户当前位置发送到后端,后端返回附近的餐馆(类似于Foursquare和Yelp。)

我不完全确定如何为餐厅存储美食。我需要一个选项,用户可以查看/选择特定的菜肴,例如只有中国菜。我应该为餐厅美食创建一个单独的模型,并与餐厅有一对多的关系吗?或者我应该像这样使用布尔值:

models.BooleanField(default=False)

以下是我的模型的代码:

from django.db import models
from django.contrib.gis.db import models as gis_models
from django.contrib.gis import geos
from django.db import models

# Create your models here.
class Restaurant(models.Model):
    name = models.CharField(max_length = 100)
    address = models.CharField(max_length = 150)
    phone = models.CharField(max_length = 12)
    cuisine = models.CharField(max_length = 50)
    eatingOptions = models.CharField(max_length = 50)
    location = gis_models.PointField(u'Latitude/Longitude', geography=True, blank=True, null=True)

    # Query Manager
    gis = gis_models.GeoManager()
    objects = models.Manager()

    def __unicode__(self):
        return self.name

1 个答案:

答案 0 :(得分:0)

只有你和你的要求才能回答这个问题。

  1. 如果您创建一个单独的模型并建立关系,它将更灵活,您可以在不更改模型的情况下使用不同的菜肴。如果您的数据库有多种类型的菜肴,最好的选择。
  2. 如果您选择使用像 is_chinese 这样的BooleanField,那么它只适用于中国菜。如果您只关心一种美食,这是最好的选择。
  3. 如果你在开发过程中做出错误的判断(至少在早期阶段){0}},请不要担心。

    希望有所帮助。