私は人モデルとDjangoのモデルを持っている:Djangoのデータベース設計 - ヌルForignキー
class Person(models.Model):
# Personal details
first_name = models.CharField(max_length=50)
middle_name = models.CharField(max_length=50, blank=True, null=True)
last_name = models.CharField(max_length=50)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
date_of_birth = models.DateField()
# Address
street_address = models.CharField(max_length=50)
suburb = models.CharField(max_length=30)
postcode = models.CharField(max_length=4)
state = models.CharField(max_length=3, choices=STATE_CHOICES)
#Contact Details
email = models.EmailField()
# Family
spouse = models.ForeignKey('self', null=True, blank=True)
children = models.ManyToManyField('self', null=True, blank=True)
home_church = models.ForeignKey('Church', null=True, blank=True)
「MIDDLE_NAME」フィールドがNULL可能である、私はそれを避けるためにどのような方法はないと思う、あるのでしょうか?
しかし、私は配偶者のためのnullable ForeignKey、子孫のための再帰ManyToManyField、および関連する場合はnull nullのForeignKeyも持っています。
私の質問 - まず、null可能な外部キーの現在のコンセンサスは何ですか?私はここでそれを許すべきですか、または私は配偶者/自宅教会を持たないことを表すために何らかの "誰も"、あるいは "割り当てられていない"モデルを作成すべきですか?
また、これに対応するためにこのデザインをDjangoで再作成できる方法がいくつかありますか?
私がヌルFK'sを先に進めれば、Djangoには注意が必要な警告がありますか? (左参加?)
乾杯を、 ビクター
自分の2セントしかありませんが、ヌル入力可能な外部キーは完全に細かく、事実上不可欠です。私が考えることができるDjangoの注意点はありません。そして、ORMはそれらをうまく処理します。 – Mikesname
+1 Mikesname –