=========================== 53:ブール値でなく日時にする =========================== テーブル設計をするとき、ブール値を多く使いがちになります。 ですがブール値でなく、日時を使うことでより良い設計にできる場合があります。 具体的な失敗 =================== .. code:: python class Article(models.Model): published = models.BooleanField("公開済みフラグ", default=False) published_at = models.DateTimeField("公開日時", default=None, null=True, blank=True) この記事(Article)テーブルには、 ``published`` というブール値のカラムがあります。 ``published`` というカラムを用意しなくても、 ``published_at`` というカラムを使えば、公開されたかどうかは判定できます。 カラムも1つ減らせるので、 ``published_at`` のみを用意するのが良いでしょう。 ベストプラクティス ================== 「公開済み」など、公開日時をフラグとして使えるデータであれば、ブール値を別途用意する必要はありません。 NULLの場合は「非公開」であり、データがある場合を「公開済み」と扱います。 .. omission::