2016-08-28 3 views
0

자세한 지식을 소장하기 위해 장고 문서를 읽는 동안 '테이블 수준 작업'및 '레코드 수준 작업'이라는 단어를 견뎌 냈습니다. 그들 사이의 차이점은 무엇입니까? 누구든지이 2 단어를 예를 들어 설명해 주시겠습니까? 그들도 다른 이름을 가지고 있습니까?테이블 수준 작업과 레코드 수준 작업의 차이점은 무엇입니까?

피씨 나는 그들이 똑같다고 느끼기 때문에 차이점을 묻지는 않지만이 방법을 이해하는 것이 더 분명 할 수 있다고 생각한다.

답변

1

Django의 맥락에서 레코드 수준 작업은 단일 레코드에서 수행되는 작업입니다.

# First, define the Manager subclass. 
class DahlBookManager(models.Manager): 
    def get_queryset(self): 
     return super(DahlBookManager, self).get_queryset().filter(author='Roald Dahl') 

# Then hook it into the Book model explicitly. 
class Book(models.Model): 
    title = models.CharField(max_length=100) 
    author = models.CharField(max_length=50) 

    objects = models.Manager() # The default manager. 
    dahl_objects = DahlBookManager() # The Dahl-specific manager. 
:

class Person(models.Model): 
    first_name = models.CharField(max_length=50) 
    last_name = models.CharField(max_length=50) 
    birth_date = models.DateField() 

    def baby_boomer_status(self): 
     "Returns the person's baby-boomer status." 
     import datetime 
     if self.birth_date < datetime.date(1945, 8, 1): 
      return "Pre-boomer" 
     elif self.birth_date < datetime.date(1965, 1, 1): 
      return "Baby boomer" 
     else: 
      return "Post-boomer" 

테이블 수준의 작업은 레코드 집합 및 이들의 예에 따라 행동하는 것들이다 당신이 클래스에 대한 ModelManager를 정의 할 때 : 당신이 모델의 사용자 정의 방법을 정의 할 때 예는

추신 : 나는 장고 문서에서 이러한 예제를 가져갔습니다.

0

Django 사람들이 용어를 사용하는 방법을 구체적으로 모르겠지만 '레코드 수준 작업'은 하나 이상의 레코드에 대한 작업을 의미해야하지만 '테이블 수준 작업'은 전체 테이블의 작업을 의미해야합니다. . 나는 모든 행에 대한 연산이 무엇인지 잘 모르겠다. 아마도 둘 다 결과에 따라 다를 것이다.

파이썬에서 '레코드 수준'의 일반적인 용어는 '요소 별'입니다. 파이썬 내장 함수의 경우, bool은 콜렉션에서 작동합니다 : bool([0, 1, 0, 3]) = True. numpy 배열의 경우, bool은 (적어도 보통은) bool ([0, 1, 0, 2]) = [False, True, False, True] 요소에서 작동합니다. 또한 [1,2,3] * 2 = [1,2,3,1,2,3] 대 [1,2,3] * 2 = [2,4,6]을 비교하십시오.

이 정보가 도움이되기를 바랍니다. 컨텍스트에서 의미가 있는지 확인하십시오.

관련 문제