【初心者向け】クソデータベース設計をしないためのテクニック5選

Поделиться
HTML-код
  • Опубликовано: 18 окт 2024

Комментарии • 43

  • @somezero9402
    @somezero9402 2 года назад +18

    これすごくいいです。
    判断力がつきますよね!
    単に教科書的に正解だけを示す、というものではなく、作り手の「考えながら判断し、結論する」という、センスを培えるものなので、エンジニアではない自分にとって貴重な学び材料です

  • @xenisound
    @xenisound 2 года назад +9

    初めてこちらのチャンネル拝見します。
    こういうのって経験知ですよね。
    右の方がお歳を召されてる分、問題単体だけじゃなくて業務想定も含めた回答になっていて流石だと思いました。

  • @らいらい-d4n
    @らいらい-d4n 2 года назад +7

    勉強になりました。このシリーズ継続して見たいです!!

  • @しょーと-m8c
    @しょーと-m8c Год назад +5

    最後のはどっちが良いか難しいよね。
    結局は要件や仕様次第だけど、中間テーブル作るとデータ構造も処理も複雑になりやすいし。

  • @mamemameomame1
    @mamemameomame1 5 месяцев назад +2

    正規化の具体例参考になります。

  • @Donarudo00
    @Donarudo00 Год назад +14

    全員白Tなのちょっとおもろい

  • @ぷにょーん
    @ぷにょーん 2 года назад +9

    1問目について、ちょっと本題から逸れるけど、顧客の大部分が法人のデータベース作るなら、メンテナンス用に法人番号も記録しといた方が便利だと思う。
    法人番号が分かれば、国税庁の公開データベースから法人名、名称フリガナ、本店所在地、郵便番号等が照合できるし、法人が解散した情報も調べられる。

  • @アヒル隊-n4b
    @アヒル隊-n4b Год назад +2

    普通の人は話しながら理解するのがすごいよな

  • @mercantilism954
    @mercantilism954 3 месяца назад +2

    アメリカでデータ分析の仕事をしています。
    3:41 はfact tableの可能性もありますから一概に言えないかもですね。私はIDと品目コードの違いがleading zerosがあるかないかの違いしかない方が問題かと思います。

  • @gonzalez_shimono
    @gonzalez_shimono 2 года назад +16

    次はnoSQLのDB編待ってます!

  • @無垢の巨人が嫌い
    @無垢の巨人が嫌い 3 месяца назад +1

    データエンジニア、データベースエンジニアまわりの動画もっと見たいです!

  • @toshiakiendo441
    @toshiakiendo441 Год назад +3

    こちらのチャンネルで勉強に・・・
    というのは、無理がある。
    確かに、視点としての気づきになる話はありますが、
    動画の中で「正解」と言っている事柄も、必ずしも正解なの?
    と思うケースが多々あります。
    今回はデータベース設計ですが、受注テーブルの話をはじめ、他の方も同様のコメントされていますし、
    コードの見直しの部分でも、正解に対して、えっ?と思うケースが多々。
    あくまでも、開発時の視点を学ぶという程度で観るのが良いかと思います。
    タイトルが「クソ~」としている時点で、煽って視聴数を伸ばそう
    という意図が見え隠れしますし。

  • @きゅー-q5k
    @きゅー-q5k Год назад

    面白いテーマでした。
    「中間テーブル」の件ですが、これが必要になるときは「多対多」のリレーションになる時のみ必要になる、という認識で合っていますか?

  • @LetsFeelAllRight
    @LetsFeelAllRight 2 года назад +6

    受注テーブルにはサロゲートキー残した方がいいと思うなぁ〜
    むしろ複合キーの採番が同じとこから来てないか心配になるw

  • @KentaroxKondo
    @KentaroxKondo Год назад

    勉強になりました!ありがとうございます!

  • @Everredphd
    @Everredphd 2 года назад +1

    顧客IDは同じ顧客が複数できた場合(話に出ていた拠点など)に同じIDを振った方が管理しやすい。そうすると、ユニークなIDじゃなくなるから、別途ユニークなIDも入れた方がよさそう。

  • @よしゆけ
    @よしゆけ Год назад +4

    後ろの男の子が置物になっている。経験が少ない人(のように見える)がどのように考えているのかを見せてほしい。
    前のお兄さんだけが正解を一直線に答えてしまっているのがもったいない。

  • @あるご-y2o
    @あるご-y2o 2 года назад +1

    0:01 そのまま「3人合わせて、パヒュームです」が始まるのかと思った

  • @kanayantopic8945
    @kanayantopic8945 2 года назад +2

    このシリーズ好きです!これからもお願いします

  • @roprim8969
    @roprim8969 2 года назад

    ちょうどDBの勉強していたので面白かったです!

  • @akhiro7944
    @akhiro7944 2 года назад +7

    これ、IDの話のとこのやつ、そもそも受注IDは品目コードを保有するなら受注IDは「一意」になることはないんじゃないですかね
    これだと、1受注に複数の商品をまとめて発注(受注)することに対応できない、、、
    受注IDというより、売上IDとかなら、、、
    と問1にもあった「意図が伝わる項目名」も大切ですね

    • @nashi.2279
      @nashi.2279 2 года назад +1

      当たり前ですけど、1つの注文で複数の商品を購入できるか否か?っていう業務要件によって適切なDB設計は変わるのでこの情報だけじゃなんとも言えないですよね
      1 vs nなら受注と受注明細テーブルに分けて、受注番号だけでは受注明細が一意にならないので明細番号(受注番号毎の通し番号)みたいなものが必要ですし、1vs1しかありえないのであればこのafterが適切な設計になりそうですね

    • @Kanagishi-s
      @Kanagishi-s 2 года назад +5

      ​ @Nash I. 受注IDと品目IDが1対1で紐づくのであればそもそもafterで品目コードを含めた複合主キーである必要はなく受注IDだけを主キーにすればいいので1つの受注IDに対して品目が最大複数あることは確定ですね。
      ここでは簡略化されているみたいですが、流石に普通なら最低でも受注日や受注会社くらいは保持していて、かつそれらは受注IDのみに依存している可能性が高いので(絶対とはいいませんが)1 vs nならと仰ってるように明細テーブルを作って品目コードはそっちに入れるのが適切なんじゃないかと思いますね。

    • @ともかず-i3d
      @ともかず-i3d 6 месяцев назад

      後日追記
      主キーが「受注ID」のみだと思ったので、当初の疑問が浮かびましたが、
      改めて正解の例を見たら、「受注ID」と「品目コード」の 複合主キー になっているので、
      それであれば、1回の受注で複数品目を受注出来ますね😅

  • @ああ-v7s2g
    @ああ-v7s2g 2 года назад

    これむっちゃくちゃ助かります

  • @bakab00n
    @bakab00n 9 месяцев назад +4

    受注テーブルなのか明細テーブルなのかがよく分かりませんが、受注テーブルらならば
    受注IDだけでなく品目カラムが入るのもおかしいし、明細テーブルならば、品目が複数
    入る可能性があるので受注IDはそのままで問題なく、むしろ数量カラムが無いのがおかしいです

  • @silverlining9891
    @silverlining9891 6 месяцев назад

    他の方々のコメント同様、とても勉強になりました、ありがとうございます!
    「達人に学ぶDB設計」を読みましたが、私には動画で学ぶほうが頭に入りやすいようで、助かります。
    シリーズ化して、動き(アニメーション)付きの図解で、いろいろなバッドノウハウ、グレーノウハウのクイズ&解説をしていただけたら嬉しいです!

  • @ダイノーキング
    @ダイノーキング Год назад

    23卒情報系学生です。最後の問題の中間テーブルは、FKなのはわかるんですけどPKでもあるんですか?
    PKだとしたらPKカラムは一つのテーブルに1つという認識で勉強してたのでイメージが湧きづらいです。いつか違う問題でもいいので解説していただきたいです。

    • @ブラッカウズ-m8y
      @ブラッカウズ-m8y 8 месяцев назад

      横から失礼します、主キー(PK)は一つのテーブルで複数持てる(いわゆる複合主キー)の場合もあると思います!

  • @ささしょー-h1g
    @ささしょー-h1g Год назад +1

    初心者が考えるにはいい問題だと思ったけど
    受注IDは桁数少なすぎて重複は有り得ると思う。
    年ごとにテーブル分けてるのはレコード件数次第でbeforeの方が良い場合もあるよね。

  • @Everredphd
    @Everredphd 2 года назад +2

    2問目、再表示時にソートを再現できないのも結構大きい問題。

  • @e3chicago
    @e3chicago 2 года назад +3

    こういうのに正解・不正解はないね。住所を別のテーブルにするかはデータの使い方による。漠然と会社テーブルなら別けてもいいけど、所在地を中心としたデータの使い方であれば住所はそのままで同じ会社でも別の場所であれば別のレコードとする。あと電話番号のハイフン有り無しに関して、すでにあるデータが統一していなければあんまりいじらないほうがいい。ただUIやAPIで何かをベースにフォーマット指定をして、それをもってハイフン無しで保存するのはOK。下手にいじって表示する時に間違ってハイフンを入れたれたりすると後で問題になるから。あと受注IDをPKにするのは止めたほうがいい。(これは動画でも後で触れてますが)

  • @naoya3350
    @naoya3350 2 года назад +1

    勉強になりました!REST API でもやって欲しいです🙏

  • @manabu5057
    @manabu5057 2 года назад

    タイトルがいいですね笑

  • @onimai-nagget-senpai
    @onimai-nagget-senpai 2 года назад +3

    dynamoDBでこの企画やって欲しいな・・・

  • @tsubasa_km
    @tsubasa_km 2 года назад +4

    どうしよう。右の人がイケメソで内容入ってこない。。

  • @さとんじ
    @さとんじ Год назад

    右の方の言ってること、実際の業務ではそうなる!ってこと言ってる!から正解が本当の正解ではないような気もする

  • @SonneClosh
    @SonneClosh 2 года назад

    サムネ同じ人3人いるのかと思った

  • @KT-nj3ho
    @KT-nj3ho 2 года назад

    白Tおじさんズ

  • @yyos5238
    @yyos5238 2 года назад +2

    受注テーブルの品目コードのコード体系は、Excelにエクスポートして開くと前0始まりが0落ちするので、0以外の方がいいかなと思いました。
    1001、A001とか。
    外部連携されてくるデータとかなら、変えようが無いですが…

    • @e3chicago
      @e3chicago 2 года назад +5

      そういう理由でテーブル設計しないほうがいいよ。

  • @azeru1210
    @azeru1210 21 день назад

    😅

  • @myouganai
    @myouganai Год назад

    it企業でも蔓延しているク◯エクセルファイルなんとかなんないでしょうかね。
    1対多の観点で情報を管理する概念はDBエンジニア以外には装備されていないんでしょうか。