내가하려는 것은 개인 기록을 추적하는 데이터베이스입니다. 모델이 거의 완료되었지만 다른 유형의 레코드를 저장하는 데 어려움을 겪고 있습니다. (I 테이블을 만들어 처음에는가변 데이터 유형의 장고 모델
... 시간, 소수점, 정수 :
의 데이터 개의 다른 종류가있다 ... 반복/바퀴, 거리, 무게, 시간이 기록되도록 또는 django의 클래스)를 사용하여 각 유형의 데이터를 찾습니다. 시간 대 테이블, 다른 가중치 (십진수) 등.
그러나 모든 레코드에 대해 하나의 테이블 만 유지하는 것이 더 나은 솔루션 일지 궁금합니다.
분리 된 테이블/모델에 대한 코드 (각 모델마다 5 가지 모델이 있습니다.) (이 방법은 잘 작동하지만 데이터를 삽입하기 위해 apropriate 모델을 미리 선택해야합니다.)
class PRWeight(model.Models): # there are PRDistance, PRLaps, PRHeight, PRTime
user = FK(User)
exercise = FK(Exercise)
date = datefield()
weight = decimalfield() # integer, integer, decimal, time
class Meta:
unique_together = [user, exercise, date,]
아니면 내가 같은 것을 할 수 있고, 그 경우 좋은 또는 더 나은 솔루션이있다 : 진정한 = 나는 빈 다른 5 개 개의 필드에 대한 필드 "레코드"를 repalce 수
class PR(models.Model):
user = FK(User)
exercise = FK(Exercise)
date = datefield()
metric = FK(Metric) # choose between time, weight, height...
# the aspect beeing mesured
record = # how can I call the right field type?
또는
class PR(models.Model):
user = FK(User)
exercise = FK(Exercise)
date = datefield()
metric = FK(Metric) # choose between time, weight, height, distance...
# the aspect beeing mesured
# not necessary in this approach
wheight = decimalfield(blank=True)
height = decimalfield(blank=True)
time = timefield(blank=True)
distance = integerfield(blank=True)
laps = integerfield(blank=True)
나는 간단한 해결책을 찾고있다. 지금까지는 직설적이기 때문에 마지막 예제를 선택하는 경향이 있지만 폼을 채울 사용자는 실수를 할 수 있습니다 ...
모든 유사한 데이터를 포함하는 추상 모델을 생성 한 다음 분리합니다 모델 별 데이터를 각 데이터에 적용 할 수 있습니다. Abastract Models 또는 테이블 상속을 사용하여 응용 프로그램 논리에 따라 가장 좋은 방법을 정의 할 수 있습니다. – petkostas
데이터베이스에 직접 작업하지 않는 한 테이블에 대해 걱정할 필요가 없다고 생각합니다. Django는 매우 훌륭한 ORM을 가지고 있으며 ORM의 주요 측면은 데이터베이스를 조사 할 필요가없고 저장 방법을 살펴보아야한다는 것입니다. 모든 항목과 모델에 액세스하고 ORM에서 테이블을 저장하는 데 필요한 테이블의 양을 결정할 수 있도록 클래스 계층 구조를 만들면됩니다. –