[데이터베이스 모델링] 1.어떻게 일대일의 관계 모델을 세웁니까?

5945 단어 Django
One-to-one relationships occur when there is exactly one record in the first table that corresponds to one record in the related table. Here we have an example where we know that each individual can have only one Biological parents i.e., Mother and Father. We already have auth user model with us, we will add a new model UserParent as described below. 첫 번째 표에 마침 하나의 기록이 관련 표의 기록과 대응할 때 일대일의 관계가 발생한다.여기서 우리는 모든 사람이 친부모, 즉 어머니와 아버지만 있을 수 있다는 것을 안다.auth 사용자 모델이 이미 있으므로 다음과 같이 UserParent를 추가합니다.
from django.contrib.auth.models import User

class UserParent(models.Model):
    user = models.OneToOneField(
        User,
        on_delete=models.CASCADE,
        primary_key=True,
    )
    father_name = models.CharField(max_length=100)
    mother_name = models.CharField(max_length=100)

>>> u1 = User.objects.get(first_name='Ritesh', last_name='Deshmukh')
>>> u2 = User.objects.get(first_name='Sohan', last_name='Upadhyay')
>>> p1 = UserParent(user=u1, father_name='Vilasrao Deshmukh', mother_name='Vaishali Deshmukh')
>>> p1.save()
>>> p1.user.first_name
'Ritesh'
>>> p2 = UserParent(user=u2, father_name='Mr R S Upadhyay', mother_name='Mrs S K Upadhyay')
>>> p2.save()
>>> p2.user.last_name
'Upadhyay'

The on_delete method is used to tell Django what to do with model instances that depend on the model instance you delete. (e.g. a ForeignKey relationship). The on_delete=models.CASCADE tells Django to cascade the deleting effect i.e. continue deleting the dependent models as well. on_delete 메서드는 Django가 삭제한 모델 인스턴스에 종속된 모델 인스턴스를 처리하는 방법을 알려주는 데 사용됩니다.예를 들어, ForeignKey 관계식입니다.on_delete=models.CASCADE는 Django 캐스케이드 제거 효과, 즉 관련 모델도 계속 삭제할 수 있음을 알려줍니다.
>>> u2.delete()

Will also delete the related record of UserParent. UserParent 도 삭제됩니다.

좋은 웹페이지 즐겨찾기