2014-06-25 2 views
0

최근에 장고를 사용하기 시작했으며 지금까지 데이터베이스 용으로 SQLite를 사용해 보았습니다. 이제 MongoDB를 사용하고 싶지만 모델을 정의 할 때 작은 문제가 발생했습니다. MongoDB 및 Django 모델 구조

는 내가 전에 NodeJS와 몽구스와 함께 일하고, 나는 이미 모델을 정의했다 : 장고에서

date : Date, 
type : String, 
    exerc : { 
     name : String, 
     series : { 
     weight : Number, 
     rep : Number, 
     quant : Number 
     } 
    } 

내가 조금 손실 여전히입니다. 나는 두 가지 접근 방식에 대해 생각했지만 어느 것이 정확하지 않은지 확신 할 수 없다.

class Work(models.Model): 
    date 
    type 
    exerC#reference to Exerc 

class Exerc(models.Model): 
    name 
    series #reference to Serie 

class Serie(models.Model): 
    weight 
    rep 
    quant 

번째 방법은 기본적 exerc하는 유형의 ListField()를 추가 포함하고 (a의 ListField으로도 세리 포함 것이다 :

첫번째 접근이 (지금, 데이터 타입 무시) 될). 이것이 어떻게 작동하는지 잘 모르겠지만 (나는 몇 가지 예를 보았습니다), 이것이 저에게 효과가 있는지 알고 싶습니다.

또한 작업을 특정 사용자 (다른 모델)와 연결해야합니다. 그렇게하는 가장 좋은 방법은 무엇입니까?

누구나 나를 위해 이것을 정리할 수 있습니까?

답변

0

모델 디자인을위한 최선의 방법은 사용 사례에 따라 다릅니다. "Exerc"및 "Serie"에 몇 가지 필터가 필요한 경우 "Exerc"및 "Serie"인스턴스를 자주 업데이트/추가/삭제해야하는 경우 - 첫 번째 방법이 더 좋습니다. 특정 "작업"인스턴스에 대해 항상 "Exerc"및 "Serie"를 모두 가져오고 너무 자주 레코드를 업데이트하지 않는 경우 - 두 번째 방법도 적합합니다.

"직장"과 "사용자"사이의 관계 - mongodb와 상호 작용하는 데 사용하는 앱에 따라 다릅니다.

+0

답장을 보내 주셔서 감사합니다. 나는 그 때 첫번째 접근을 시도 할 것이다. ForeignKey가 비 관계형 데이터베이스에서 가능한지 확실하지 않았습니다. –

+0

죄송합니다. 비 관계형 데이터베이스를 사용하지 않았습니다. 장고는 기본적으로 mongodb를 지원하지 않기 때문에 가능한 결정은 mongodb와 상호 작용하기 위해 사용하는 응용 프로그램에 달려 있습니다. –

+0

SQLite를 사용하는 것이 더 좋을 것이라고 생각하십니까? –