2011-11-24 1 views
0

사용자가 백 오피스에서 새 테이블을 만드는 방법을 만들어야합니다. 왜?장고에서 스크립트 내에서 새 테이블을 생성하고 스키마를 변경하는 방법은 무엇입니까? 또는 도우미

내가 개발중인 앱에는 많은 기사가 있지만 각 기사마다 다른 속성이 있습니다. 따라서 기사는 동일한 속성을 가진 그룹에 속할 수 있습니다. 따라서 다음과 같을 수 있습니다.

table: generated_table_screens 
-------------------- 
|size: integer  
|size_label: string = "size" 
|article_id: integer 


table: generated_table_mouses 
--------------------- 
|optic_val: integer 
|optic_val_label: string = "optic value" 
|article_id: integer 


table: articles 
-------------------- 
|id 
|code 
|description 
|price 

이 항목과 EAV 중에서 선택해야합니다. 죄수 및 찬성은 무엇입니까? 그리고 어떻게 장고에서 이것을 할 수 있고, "generated_table_mouses"를 모델로 취급 할 수 있을까요? 모델이 생성되지 않기 때문에 ...

+0

EAV 접근 방식은 패턴이 잘 알려져 있고 문서화되어 있고 제안하는 다른 옵션이 애매하고 인생을 힘들게하기 때문에 표준 SQL 데이터베이스에 대해 의미가 있습니다. 다른 가능한 대안은 NoSQL 일 것입니다. –

+0

나는 noSQL db를 사용할 수 없다고 생각한다. EAV의 속도는 행당 다중 조인 때문에 읽은 속도보다 느립니다. 제 경우에는 약 100 개의 항목을 쿼리해야하며 각 항목에는 평균 6 개의 속성이 있습니다. –

+0

noSQL에 대한 귀하의 논쟁은 무엇입니까? –

답변

2

당신은 아마 특별히되는 NoSQL 데이터베이스를 지원 django-nonrel이라는 장고의 지점이있다 이러한 목적을 위해 MongoDB 또는 CouchDB ... 같은 문서 지향 데이터베이스로 보일 것입니다.