저는 사람의 프로필을 구축하기 위해 다양한 정보 소스를 사용하고 있습니다. 이렇게하면 다른 방식으로 사람을 볼 수있는 유연성을 원합니다. 나는 장고에 많은 expierience가 없다. 그래서 나는 내 모델에 대해 비판하고 싶다. 틀림없이 내가 코딩 한 것처럼 나는 중복 (DRY에 반대)을 생각하고 있지만 다른 사람들이 생각하는 것을 알고 싶다. FWIW -이 데이터는 생성되지 않았으므로 어쨌든 데이터를 삭제하지 않아야합니다.내 장고 모델을 검토하십시오 - 많은 제안이 필요합니다
구체적으로 ManyToMany의 사용이 적합한 지 알고 싶거나 키스하고 각 항목을 남겨두고 싶습니다. ManyToMany 비즈니스가 없어도 자신의 것입니다. 장기간 나는 KISS가 간단하게 (루프를위한 기본으로) 업데이트 할 것이라고 생각하지만, location_description이나 job_function을 기반으로 한 사람을 쿼리 할 수 있다는 단점이있다. 어쨌든 나는 약간의 의견을 고맙게 여길 것이다.
class Person(models.Model):
"""This simply builds a notes user"""
aliases = models.ManyToManyField(Aliases) #Hmm this is list..
assistant = models.CharField(max_length = 255, blank = True)
cell_phone = models.CharField(max_lenth = 16, blank = True)
city = models.ManyToManyField(City)
country = models.ManyToManyField(County)
department = models.ManyToManyField(Department)
departmeht_number = models.ManyToManyField(Department_Number)
division_code = models.ManyToManyField(Division_Code)
email = models.EmailField(max_length = 50)
functional_area = models.ManyToManyField(Functional_Area)
# jpeg = models.
job_classification = models.ManyToManyField(Job_Classification)
job_classification_code = models.ManyToManyField(Job_Classification_Code)
last_name = models.CharField(max_length = 255)
location_description = models.ManyToManyField(Location_Description)
location_path = models.ManyToManyField(Location_Path)
mail_address = models.CharField(max_length = 255, blank = True)
mail_domain = models.ManyToManyField(Mail_Domain)
mail_file = models.CharField(max_length = 255, blank = True)
mail_server = models.ManyToManyField(Mail_Server)
match_pct = models.CharField(max_lenth = 6)
name = models.CharField(max_length = 255)
name_reverse = models.CharField(max_length = 255)
nickname = models.CharField(max_length = 32)
notes_url = models.URLField()
# object_class = models.
office_phone = models.CharField(max_length = 255, blank = True)
other_phone = models.CharField(max_length = 255, blank = True)
position = models.ManyToManyField(Position)
section = models.ManyToManyField(Section)
section_code = models.ManyToManyField(SectionCode)
shift = models.ManyToManyField(Shift)
state = models.ManyToManyFiedl(State)
supervisor = models.ManyToManyField(Supervisor)
supervisor_reverse = models.ManyToManyField(Supervisor_reverse)
uid = models.CharField(max_length = 128)
def __unicode__(self):
return str(self.name)
일반적으로 개체 계층 구조에 대한 신중한 고려가 끝나면이 같은 것이 많이 발생합니다. – Evgeny
여기 KISS를 "유용한 덩어리로 분류 된 정보"로 정의해야한다고 생각합니다. 선택, 필터링, ... 및 더 적은 NULL 값을 갖는 압축 된 데이터베이스를위한 좋은 개체 계층 구조로 이어질 것입니다. – vikingosegundo
vikingosegundo - 좋은 충고 - 나는 모든 사람들의 제안을 따르고있다. 하지만 null 값이 줄어들지 않습니다! 감사합니다 – rh0dium