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

  Рет қаралды 83,134

エンジニアチャンネル

エンジニアチャンネル

Күн бұрын

【エンジニアチャンネル公式Twitter】
/ engr_channel
【小川 Twitter】
/ ogaaryo
【粟島 Twitter】
/ masayan0911
【前田 Twitter】
/ shinnosuke_324
-----------------------------------------------------------------------
プロフィール
-----------------------------------------------------------------------
■エンジニアチャンネル
✅IT業界の裏事情・オフレコトーク ✅転職・就職・キャリア戦略 ✅効率的な学習方法を中心に「エンジニアになりたい方」や「IT業界で成長したい方」に向けた情報を発信しています。
■小川亮(おがわりょう)
株式会社エンジニアチャンネル 代表取締役社長
ベンチャー企業の取締役CTOとして組織・サービス両面のリーダーとして活動後、フリーランスを経て起業。
プログラミング学習、転職・就職・キャリア戦略などの豊富な相談実績に基づき今日から使えるハウツーを発信。
■粟島正俊(あわしままさとし)
株式会社テックファクトリー 代表取締役社長
エンジニアとしてキャリアをスタート。ベンチャー企業のCTOとしてサービス開発全般を行う。
フリーランスを経て、株式会社テックファクトリーを起業。自社サービスで稼ぐプロとして、エンジニアとビジネスの観点を織り交ぜて発信。

Пікірлер: 43
@Donarudo00
@Donarudo00 Жыл бұрын
全員白Tなのちょっとおもろい
@よしゆけ
@よしゆけ Жыл бұрын
後ろの男の子が置物になっている。経験が少ない人(のように見える)がどのように考えているのかを見せてほしい。 前のお兄さんだけが正解を一直線に答えてしまっているのがもったいない。
@bakab00n
@bakab00n 8 ай бұрын
受注テーブルなのか明細テーブルなのかがよく分かりませんが、受注テーブルらならば 受注IDだけでなく品目カラムが入るのもおかしいし、明細テーブルならば、品目が複数 入る可能性があるので受注IDはそのままで問題なく、むしろ数量カラムが無いのがおかしいです
@somezero9402
@somezero9402 Жыл бұрын
これすごくいいです。 判断力がつきますよね! 単に教科書的に正解だけを示す、というものではなく、作り手の「考えながら判断し、結論する」という、センスを培えるものなので、エンジニアではない自分にとって貴重な学び材料です
@mercantilism954
@mercantilism954 2 ай бұрын
アメリカでデータ分析の仕事をしています。 3:41 はfact tableの可能性もありますから一概に言えないかもですね。私はIDと品目コードの違いがleading zerosがあるかないかの違いしかない方が問題かと思います。
@ぷにょーん
@ぷにょーん Жыл бұрын
1問目について、ちょっと本題から逸れるけど、顧客の大部分が法人のデータベース作るなら、メンテナンス用に法人番号も記録しといた方が便利だと思う。 法人番号が分かれば、国税庁の公開データベースから法人名、名称フリガナ、本店所在地、郵便番号等が照合できるし、法人が解散した情報も調べられる。
@しょーと-m8c
@しょーと-m8c Жыл бұрын
最後のはどっちが良いか難しいよね。 結局は要件や仕様次第だけど、中間テーブル作るとデータ構造も処理も複雑になりやすいし。
@xenisound
@xenisound Жыл бұрын
初めてこちらのチャンネル拝見します。 こういうのって経験知ですよね。 右の方がお歳を召されてる分、問題単体だけじゃなくて業務想定も含めた回答になっていて流石だと思いました。
@LetsFeelAllRight
@LetsFeelAllRight Жыл бұрын
受注テーブルにはサロゲートキー残した方がいいと思うなぁ〜 むしろ複合キーの採番が同じとこから来てないか心配になるw
@まついこ
@まついこ 2 ай бұрын
データエンジニア、データベースエンジニアまわりの動画もっと見たいです!
@tsubasa_km
@tsubasa_km Жыл бұрын
どうしよう。右の人がイケメソで内容入ってこない。。
@gonzalez_shimono
@gonzalez_shimono Жыл бұрын
次はnoSQLのDB編待ってます!
@らいらい-d4n
@らいらい-d4n Жыл бұрын
勉強になりました。このシリーズ継続して見たいです!!
@mamemameomame1
@mamemameomame1 5 ай бұрын
正規化の具体例参考になります。
@toshiakiendo441
@toshiakiendo441 Жыл бұрын
こちらのチャンネルで勉強に・・・ というのは、無理がある。 確かに、視点としての気づきになる話はありますが、 動画の中で「正解」と言っている事柄も、必ずしも正解なの? と思うケースが多々あります。 今回はデータベース設計ですが、受注テーブルの話をはじめ、他の方も同様のコメントされていますし、 コードの見直しの部分でも、正解に対して、えっ?と思うケースが多々。 あくまでも、開発時の視点を学ぶという程度で観るのが良いかと思います。 タイトルが「クソ~」としている時点で、煽って視聴数を伸ばそう という意図が見え隠れしますし。
@Everredphd
@Everredphd Жыл бұрын
2問目、再表示時にソートを再現できないのも結構大きい問題。
@ささしょー-h1g
@ささしょー-h1g Жыл бұрын
初心者が考えるにはいい問題だと思ったけど 受注IDは桁数少なすぎて重複は有り得ると思う。 年ごとにテーブル分けてるのはレコード件数次第でbeforeの方が良い場合もあるよね。
@akhiro7944
@akhiro7944 Жыл бұрын
これ、IDの話のとこのやつ、そもそも受注IDは品目コードを保有するなら受注IDは「一意」になることはないんじゃないですかね これだと、1受注に複数の商品をまとめて発注(受注)することに対応できない、、、 受注IDというより、売上IDとかなら、、、 と問1にもあった「意図が伝わる項目名」も大切ですね
@nashi.2279
@nashi.2279 Жыл бұрын
当たり前ですけど、1つの注文で複数の商品を購入できるか否か?っていう業務要件によって適切なDB設計は変わるのでこの情報だけじゃなんとも言えないですよね 1 vs nなら受注と受注明細テーブルに分けて、受注番号だけでは受注明細が一意にならないので明細番号(受注番号毎の通し番号)みたいなものが必要ですし、1vs1しかありえないのであればこのafterが適切な設計になりそうですね
@Kanagishi-s
@Kanagishi-s Жыл бұрын
​ @Nash I. 受注IDと品目IDが1対1で紐づくのであればそもそもafterで品目コードを含めた複合主キーである必要はなく受注IDだけを主キーにすればいいので1つの受注IDに対して品目が最大複数あることは確定ですね。 ここでは簡略化されているみたいですが、流石に普通なら最低でも受注日や受注会社くらいは保持していて、かつそれらは受注IDのみに依存している可能性が高いので(絶対とはいいませんが)1 vs nならと仰ってるように明細テーブルを作って品目コードはそっちに入れるのが適切なんじゃないかと思いますね。
@ともかず-i3d
@ともかず-i3d 6 ай бұрын
後日追記 主キーが「受注ID」のみだと思ったので、当初の疑問が浮かびましたが、 改めて正解の例を見たら、「受注ID」と「品目コード」の 複合主キー になっているので、 それであれば、1回の受注で複数品目を受注出来ますね😅
@Everredphd
@Everredphd Жыл бұрын
顧客IDは同じ顧客が複数できた場合(話に出ていた拠点など)に同じIDを振った方が管理しやすい。そうすると、ユニークなIDじゃなくなるから、別途ユニークなIDも入れた方がよさそう。
@アヒル隊-n4b
@アヒル隊-n4b Жыл бұрын
普通の人は話しながら理解するのがすごいよな
@e3chicago
@e3chicago Жыл бұрын
こういうのに正解・不正解はないね。住所を別のテーブルにするかはデータの使い方による。漠然と会社テーブルなら別けてもいいけど、所在地を中心としたデータの使い方であれば住所はそのままで同じ会社でも別の場所であれば別のレコードとする。あと電話番号のハイフン有り無しに関して、すでにあるデータが統一していなければあんまりいじらないほうがいい。ただUIやAPIで何かをベースにフォーマット指定をして、それをもってハイフン無しで保存するのはOK。下手にいじって表示する時に間違ってハイフンを入れたれたりすると後で問題になるから。あと受注IDをPKにするのは止めたほうがいい。(これは動画でも後で触れてますが)
@あるご-y2o
@あるご-y2o Жыл бұрын
0:01 そのまま「3人合わせて、パヒュームです」が始まるのかと思った
@azeru1210
@azeru1210 3 күн бұрын
😅
@さとんじ
@さとんじ Жыл бұрын
右の方の言ってること、実際の業務ではそうなる!ってこと言ってる!から正解が本当の正解ではないような気もする
@きゅー-q5k
@きゅー-q5k Жыл бұрын
面白いテーマでした。 「中間テーブル」の件ですが、これが必要になるときは「多対多」のリレーションになる時のみ必要になる、という認識で合っていますか?
@KentaroxKondo
@KentaroxKondo Жыл бұрын
勉強になりました!ありがとうございます!
@ダイノーキング
@ダイノーキング Жыл бұрын
23卒情報系学生です。最後の問題の中間テーブルは、FKなのはわかるんですけどPKでもあるんですか? PKだとしたらPKカラムは一つのテーブルに1つという認識で勉強してたのでイメージが湧きづらいです。いつか違う問題でもいいので解説していただきたいです。
@ブラッカウズ-m8y
@ブラッカウズ-m8y 7 ай бұрын
横から失礼します、主キー(PK)は一つのテーブルで複数持てる(いわゆる複合主キー)の場合もあると思います!
@onimai-nagget-senpai
@onimai-nagget-senpai Жыл бұрын
dynamoDBでこの企画やって欲しいな・・・
@SonneClosh
@SonneClosh Жыл бұрын
サムネ同じ人3人いるのかと思った
@roprim8969
@roprim8969 Жыл бұрын
ちょうどDBの勉強していたので面白かったです!
@KT-nj3ho
@KT-nj3ho Жыл бұрын
白Tおじさんズ
@manabu5057
@manabu5057 Жыл бұрын
タイトルがいいですね笑
@kanayantopic8945
@kanayantopic8945 Жыл бұрын
このシリーズ好きです!これからもお願いします
@ああ-v7s2g
@ああ-v7s2g Жыл бұрын
これむっちゃくちゃ助かります
@naoya3350
@naoya3350 Жыл бұрын
勉強になりました!REST API でもやって欲しいです🙏
@myouganai
@myouganai 11 ай бұрын
it企業でも蔓延しているク◯エクセルファイルなんとかなんないでしょうかね。 1対多の観点で情報を管理する概念はDBエンジニア以外には装備されていないんでしょうか。
@silverlining9891
@silverlining9891 5 ай бұрын
他の方々のコメント同様、とても勉強になりました、ありがとうございます! 「達人に学ぶDB設計」を読みましたが、私には動画で学ぶほうが頭に入りやすいようで、助かります。 シリーズ化して、動き(アニメーション)付きの図解で、いろいろなバッドノウハウ、グレーノウハウのクイズ&解説をしていただけたら嬉しいです!
@yyos5238
@yyos5238 Жыл бұрын
受注テーブルの品目コードのコード体系は、Excelにエクスポートして開くと前0始まりが0落ちするので、0以外の方がいいかなと思いました。 1001、A001とか。 外部連携されてくるデータとかなら、変えようが無いですが…
@e3chicago
@e3chicago Жыл бұрын
そういう理由でテーブル設計しないほうがいいよ。
【初心者向け】クソコードを書かないためのテクニック5選
14:39
エンジニアチャンネル
Рет қаралды 103 М.
小学生でもわかるデータベース設計入門。実際に設計しながら基礎を学ぼう
1:31:28
だれでもエンジニア / 山浦清透
Рет қаралды 127 М.
Поветкин заставил себя уважать!
01:00
МИНУС БАЛЛ
Рет қаралды 7 МЛН
Крутой фокус + секрет! #shorts
00:10
Роман Magic
Рет қаралды 23 МЛН
The Joker wanted to stand at the front, but unexpectedly was beaten up by Officer Rabbit
00:12
Стойкость Фёдора поразила всех!
00:58
МИНУС БАЛЛ
Рет қаралды 4,5 МЛН
エース社員に聞いた!失敗しないためのタスク管理術5選
10:35
スタイル・エッジな日々 ?
Рет қаралды 6 М.
【ITパスポート用語解説】データベース設計単語5選!
19:42
小学生でもわかる!! IT知識学習チャンネル
Рет қаралды 69
「完璧な表」は扱いづらい。データ配置理論の皮肉。【データベース4】#90
34:13
ゆるコンピュータ科学ラジオ
Рет қаралды 140 М.
【初心者向け】第2回 クソコードを書かないためのテクニック4選
17:12
エンジニアチャンネル
Рет қаралды 77 М.
技術者に怒られないためのエクセル術。セルを結合するな。【データベース3】#89
26:49
こんな設計してない?ダメな理由を知って良い設計にしていこう!DB設計・SQLアンチパターン
13:03
ひぐま流IT道場【プログラミング・システム開発・SIer】
Рет қаралды 9 М.
データベースやSQLに強くなる方法
8:54
KENTA / 雑食系エンジニアTV
Рет қаралды 29 М.
Amazonエンジニアがコードを書かない理由 | Vlog - ep1
8:48
Amazonエンジニアのお茶会
Рет қаралды 47 М.
Поветкин заставил себя уважать!
01:00
МИНУС БАЛЛ
Рет қаралды 7 МЛН