[フレーム]
はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできます コメント表示の設定

ブックマークしました

ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

757users がブックマーク コメント 35

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

データベース設計におけるNULL - kawasima

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

はてなブックマーク

はてなブックマークで
関心をシェアしよう

みんなの興味と感想が集まることで
新しい発見や、深堀りがもっと楽しく

ユーザー登録

アカウントをお持ちの方はログインページ

記事へのコメント35

  • 注目コメント
  • 新着コメント
circled
「なるほど、こうやってリレーションで分ければ良いんですね」って納得した若いエンジニアが、翌月盛大にN+1なコードを随所に書いて持って来てから次の教育が始まる。

その他
masatomo-m
簡潔にまとめられていて良い。あとは現場レベルでは正規化に伴う新しい概念に名前を付けること自体が負担になってしまい、誤解がそれほどなければNULLでお茶を濁すケースはあると思う

その他
takeag
カラムがnullでそんなに困ることないんだけどそんなに悪いもんなの? 外部テーブルの存在確認の方がコスト高そうだけど。

その他
devrabi
実装の話と実行コストの話もないと、この考え方はなかなか広まらないのが。

その他
kagehiens
いい整理だと思う。まぁマスタ的に「参照しているイベントがないことが分かりきっている」値の属性にはNullをセットしておくのが最適解になりがちな訳ですが......。非存在の確認クエリはコスト上昇しまくるんだよなぁ

その他
fal-works
本当にNULLが相応しいケースって実はそんなになくて、実装都合との綱引きの側面が強いですよね(そう多くの事例を知ってるわけではないが)。細部のポリシーは人によるかもですがこの整理は分かりやすい

その他
n314
教科書的にはnullにindexは使えないけど、実際には使える実装もあるし部分indexもあるからnullが検索しやすい。テーブル分けたらnot existsとかseq scanになることが多くならないだろうか?

その他
strawberryhunter
ナルフォビア諸氏の教条的思考回路に惑わされないためにNULLABLEにする基準は明確化しておきたい。私はNULLABLEはできるだけ避けつつ1列程度をテーブルに分割するくらいならNULLABLEでいいだろ派。

その他
turanukimaru
属性とリレーションを正しく区別できる人はいない全ての属性はリレーションにできる。のでこの辺はあまり興味がない。私が気にしてるのはそのNullに意味が有るか?だけかな。未決定以外にNullの意味があるときは危ない

その他
qtamaki
色々理由をつけてテーブルをバラしていくとRDBの上にRDBを構築することになって使いづらく重いDBが出来上がる。あと継承はOOPですら忌避される傾向にあるのでDBで使う野は地獄だ

その他
uesima
データベース

その他
tor4kichi
DB無知太郎だけどデフォNOT NULLで必要なやつだけNullable属性付けさす方が安全かなとおもた。出来るもんなら判別共用体みたいな複雑な型をテーブル項目として対応してもらえるといいけど、それは性能が犠牲になるよね...

その他
diveintounlimit
DBのNULLの性質を知った上でどこまで正規化するかだろうという気はする。しようと思えば無限に正規化できて、無限にテーブルが生成できて、そして負荷と管理コストで死ぬ。

その他
nilab
データベース設計におけるNULL - kawasima

その他
tmatsuu
わいわい。NULLに関してはソフト・リサーチ・センター社の書籍でNULLを使わないスキーマ設計の話があって衝撃を受けた記憶がある。

その他
ko-ya-ma
safari

その他
mather314
「将来的な拡張性のためにdata1カラムを用意したが現時点で未使用のため全データでnull」というダメな事例は見たことある

その他
rryu
スキーマ上NULLが存在していなくてもJOINすると現れるのでどうJOINするかも設計しておく必要があるが、NULLが現れる方法でしか利用できないのであれば最初からくっつけておけばいい訳である。

その他
honeningen
ミドルネームを持たない人はNULLにした結果、名 || ミドルネーム || 姓でフルネーム表示してるところにミドルネームを持たない人の名前が出ないバグが発生するよな。

その他
surume000
第5正規形というディストピア

その他
syusuimaru
部分インデックスとか使うから絶対にnullをなくせってのは正直受け入れられんなぁ。

その他
yarumato
"属性の値としてのNULLだが、主には未知(Unknown)と適用不能(Not Applicable)に区別される。"

その他
txjp
状態ごとにテーブルを分けるのは想定外の値の持ち方をしたときのエラーハンドリングで地獄を見ることになる(なった)

その他
pascal256
後で読む

その他
everybodyelse
とりあえず気軽にメールアドレスだけ登録させておいて、後で必要なタイミングで他の情報も登録させる、みたいなのもあるよね。UX上の理由みたいな。この場合はテーブルを分けるべきではなさそう。

その他
kazukan
Nullがやってくると信じてたら元がhostで空白スペース埋めて来た時の絶望感(テーブル定義が整備されてないことが発覚して、オープン化のプロジェクトの雲行きが怪しくなる序章)

その他
qtamaki
qtamaki 色々理由をつけてテーブルをバラしていくとRDBの上にRDBを構築することになって使いづらく重いDBが出来上がる。あと継承はOOPですら忌避される傾向にあるのでDBで使う野は地獄だ

2022年05月21日 リンク

その他
canadie
Nullの弊害ねえ。価格をNullにすると消費税も合計も年売上も会社の総資産も全部NullになっちゃうNull伝播、言語側でUndefinedとかぬるぽとか0とかになっちゃう問題、とかかな?パフォーマンス面では改善されている認識

その他
zentarou
APIでJSON返す時に結局NULLになっちゃったりフロントに面倒さを押し付けたりしないといいんだけど

その他
door-s-dev
NULLがあるとほんと考えるケース増えるしSQLも複雑になるからね。リンク先の3値論理の話がすごく良い

その他
n314
n314 教科書的にはnullにindexは使えないけど、実際には使える実装もあるし部分indexもあるからnullが検索しやすい。テーブル分けたらnot existsとかseq scanになることが多くならないだろうか?

2022年05月21日 リンク

その他
Magicant
みんな、速度やデータサイズを犠牲にしてでもそこまでマジメに正規化したがるもんなの?

その他
turanukimaru
turanukimaru 属性とリレーションを正しく区別できる人はいない全ての属性はリレーションにできる。のでこの辺はあまり興味がない。私が気にしてるのはそのNullに意味が有るか?だけかな。未決定以外にNullの意味があるときは危ない

2022年05月21日 リンク

その他
takeag
takeag カラムがnullでそんなに困ることないんだけどそんなに悪いもんなの? 外部テーブルの存在確認の方がコスト高そうだけど。

2022年05月21日 リンク

その他
razokulover
NULL

その他
strawberryhunter
strawberryhunter ナルフォビア諸氏の教条的思考回路に惑わされないためにNULLABLEにする基準は明確化しておきたい。私はNULLABLEはできるだけ避けつつ1列程度をテーブルに分割するくらいならNULLABLEでいいだろ派。

2022年05月21日 リンク

その他
shodai
面白い

その他
circled
circled 「なるほど、こうやってリレーションで分ければ良いんですね」って納得した若いエンジニアが、翌月盛大にN+1なコードを随所に書いて持って来てから次の教育が始まる。

2022年05月21日 リンク

その他
devrabi
devrabi 実装の話と実行コストの話もないと、この考え方はなかなか広まらないのが。

2022年05月21日 リンク

その他
versatile
0, "", undef などが乱立する perl だと db の NULL をアプリケーションでうまくハンドリングするには ORM の実装を見る必要があった、ような気がする。もちろん乱立してるってのは不勉強による気のせいなんだけど、むずいよね

その他

注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

リンクを埋め込む

以下のコードをコピーしてサイトに埋め込むことができます

プレビュー
アプリのスクリーンショット
いまの話題をアプリでチェック!
  • バナー広告なし
  • ミュート機能あり
  • ダークモード搭載
アプリをダウンロード

関連記事

usersに達しました!

さんが1番目にブックマークした記事「データベース設計...」が注目されています。

気持ちをシェアしよう

ツイートする

データベース設計におけるNULL - kawasima

NULL絶対ダメ論や現実的には無理だから上手く付き合っていくしかないんだよ論など見られるが、せっかくC... NULL絶対ダメ論や現実的には無理だから上手く付き合っていくしかないんだよ論など見られるが、せっかくCodd博士が上図の分類を提示しておられるので、これを元にもっと詳細化して考えてみよう。

ブックマークしたユーザー

  • lugecy2024年04月21日 lugecy
  • socials2023年08月22日 socials
  • chibahiro2023年07月02日 chibahiro
  • uesima2023年04月30日 uesima
  • techtech05212023年02月20日 techtech0521
  • fkshom2023年01月28日 fkshom
  • youko032022年12月02日 youko03
  • motoyasu-yamada2022年09月18日 motoyasu-yamada
  • it_fitness_jp2022年09月05日 it_fitness_jp
  • kirrr2022年09月02日 kirrr
  • for-my-internet-demo2022年08月05日 for-my-internet-demo
  • ymdicr01012022年07月06日 ymdicr0101
  • donotthinkfeel2022年07月03日 donotthinkfeel
  • okumuraa12022年06月29日 okumuraa1
  • hondallica2022年06月14日 hondallica
  • smishima2022年06月11日 smishima
  • kwy2022年06月09日 kwy
  • kirikiriyamama2022年06月01日 kirikiriyamama
すべてのユーザーの
詳細を表示します

ブックマークしたすべてのユーザー

同じサイトの新着

同じサイトの新着をもっと読む

いま人気の記事

いま人気の記事をもっと読む

いま人気の記事 - テクノロジー

いま人気の記事 - テクノロジーをもっと読む

新着記事 - テクノロジー

新着記事 - テクノロジーをもっと読む

同時期にブックマークされた記事

いま人気の記事 - 企業メディア

企業メディアをもっと読む

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /