2014-10-04 3 views
0

Я создаю back-back-geo django для приложения для iPhone. Приложение iphone отправляет текущее местоположение пользователей на бэкэнд, который возвращает соседние рестораны (что-то похожее на Foursquare and Yelp.)Хранение категорий ресторанов в проекте GeoDjango

Я не совсем уверен, как хранить кухню для ресторанов. Мне нужен вариант, когда пользователь может искать/выбирать определенную кухню, например, только китайскую кухню. Должен ли я создать отдельную модель для ресторанной кухни и иметь одно-много отношений с ресторанами? или я должен использовать логическое значение, как это:

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 

ответ

0

Только вы и ваши требования могут ответить на этот вопрос.

  1. Если вы создаете отдельную модель и имеете отношения, она будет более гибкой, вы можете иметь разные кухни без изменения модели. Лучший вариант, если ваша база данных будет иметь несколько видов кухни.
  2. Если вы решите использовать BooleanField, например is_chinese, то он будет работать только для китайской кухни. Это лучший вариант, если вы заботитесь только о одном типе кухни.

Не волнуйтесь, если вы ошибаетесь при разработке (по крайней мере, на ранней стадии), django has your back.

Надеюсь, что это поможет.

Смежные вопросы