タグ

ブックマーク / dbconcept.hatenablog.com (2)

  • 「永続null」と「時限null」を区別しよう - 設計者の発言

    テーブル設計において、null値を取り得る項目の扱いは慎重でなければいけない。nullが設定される可能性のある項目を使ってSelect文の選択条件や並び順の指定をすると、予期しない結果が返る怖れがあるからだ。 具体的には、ある文字項目がnullを取り得る場合、設計者がnullとブランク(数字項目ではnullとゼロ)とで意味の違いがないとみなしても、SQLはそれらを区別して処理してしまう。非nullとして定義して0やブランクを初期値に設定しておけば大抵はしのげるのだが、日付項目のようにnullか非nullしか取らない項目向けにはnullであった場合のふるまいを仕様上明確にする必要がある。 nullの扱いに関わるこうしたややこしさを避けたい。そのために提唱される設計原則が「テーブル上の項目はすべて非nullとする」である。レコード上で条件次第でnullが設定されるとしたら、その項目をそのテーブ

    「永続null」と「時限null」を区別しよう - 設計者の発言
  • ワクチン在庫管理で学ぶ「引き当て」と「在庫推移」 - 設計者の発言

    2021年3月から格化したワクチン接種は当初は順調に進むかのように見えたが、7月に入って突然、一部の都道府県へのワクチン供給を削減する方針が示された。その根拠となったのが、都道府県別に算出された「余剰在庫」だった。ところが、その数値が実態とずれていることが各方面から指摘され、けっきょく政府は発表2週間後に供給削減の方針を撤回した。何が起こっていたのか。私は詳細を知る立場にはないが、在庫管理システムを数多く手がけた開発者としていくつかの問題を指摘できる。 未接種分が引き当てされていない まず驚かされたのが、都道府県別の余剰在庫の数字に「1回目は接種したが2回目はまだ」のための引き当てが考慮されていなかったことだ。なんとも初歩的なミスではあるが、これは来ひとつにまとまっているべき接種管理システムが、配送管理用のワクチン接種円滑化システム(V-SYS)と、接種実績管理用のワクチン接種記録シス

    ワクチン在庫管理で学ぶ「引き当て」と「在庫推移」 - 設計者の発言
  • 1