マガジンのカバー画像

技術記事_DB

12
運営しているクリエイター

記事一覧

【SQLアンチパターン】EAV(エンティティ・アトリビュート・バリュー)について

【SQLアンチパターン】EAV(エンティティ・アトリビュート・バリュー)について

こんにちは、CryptoGamesの高橋です。

ブロックチェーンサービスを行っている会社です。

今回は「SQLアンチパターン」の第5章の「EAV(エンティティ・アトリビュート・バリュー)」について、見ていきます。

では早速、見ていきましょう。

0 前提条件下のように、「問題」に関する情報を管理したいとします。

しかし、「問題」にはいろんな種類があり、テーブルの列に入れる内容がさまざまにな

もっとみる
【SQLアンチパターン】IDリクワイド(とりあえずID)について

【SQLアンチパターン】IDリクワイド(とりあえずID)について

こんにちは、CryptoGamesの高橋です。

ブロックチェーンサービスを行っている会社です。

今回は「SQLアンチパターン」の第3章の「IDリクワイド(とりあえずID)」について、見ていきます。

では早速、見ていきましょう。

1 不必要な「ID」列について1ー1 そのID列は本当に必要?

まずは、下のテーブルを見てください。

このテーブル、どこかよくないのですが、一体何が良くないでし

もっとみる
【SQLアンチパターン】キーレスエントリ(外部キー嫌い)の解説

【SQLアンチパターン】キーレスエントリ(外部キー嫌い)の解説

こんにちは、CryptoGamesの高橋です。

ブロックチェーンサービスを行っている会社です。

今回は「SQLアンチパターン」の第4章の「キーレスエントリ(外部キー嫌い)」について、見ていきます。

では早速、見ていきましょう。

0 前提まず最初に、下の2つのテーブルが存在していると仮定します。

「社員テーブル」と「クレームテーブル」です。

リンゴを販売している会社をイメージしています。

もっとみる
【SQLアンチパターン】ナイーブツリーと閉包テーブル

【SQLアンチパターン】ナイーブツリーと閉包テーブル

こんにちは、CryptoGamesの高橋です。

ブロックチェーンサービスを行っている会社です。

今回は「SQLアンチパターン」の第3章の「ナイーブツリー(素朴な木)」について、見ていきます。

では早速、見ていきましょう。

1 今回扱うケース下のようなスレッドが存在するとします。

いろんな人が書き込みを行っていますね。

枝分かれや、スレッドが下に伸びていったりしています。

例えば「1」

もっとみる
【SQLアンチパターン】(ジェイウォークとその解決策を理解しよう!)

【SQLアンチパターン】(ジェイウォークとその解決策を理解しよう!)

こんにちは、CryptoGamesの高橋です。

ブロックチェーンサービスを行っている会社です。

今回は「SQLアンチパターン」のジェイウォークについて、見ていきます。

正直、本書は難易度が高めだと思いますので、皆さんの理解の一助になれば幸いです。

0 前提下のように、社員テーブルと商品テーブルがあります。

ここで、商品テーブルに、社員の列を追加しました。

担当者が一人なら、特に問題はな

もっとみる
【MySQL】○番目のデータを取ってこよう

【MySQL】○番目のデータを取ってこよう

テーブル内で○番目を求める方法を見てみましょう。

動画はこちらです。

今回使用するデータはこちらになります。

1 並び替えを行う並び替えはorder byで行うことができます。

select * from person order by age desc;

次のように並び替えることができました。

2 上位○個を取ってくるLimitを使っていきます。

select * from per

もっとみる

【MySQL】enumの是非について(ハンズオン・動画付き)

今回は、MySQLでenumを使うことの是非について見ていきたいと思います。

動画はこちらです。

なお、こちらの素晴らしい記事を非常に参考にさせていただきました。

では、見ていきましょう。

現時点では、こちらのpersonテーブルを想定しています。

なお、auto_incrementの設定などについてご不明の場合は、前回のnoteをご参照ください。

1 enumのカラムの追加まずは、

もっとみる
【MySQL】テーブルの作成〜カラムの変更・削除など(動画付き)

【MySQL】テーブルの作成〜カラムの変更・削除など(動画付き)

今回は、テーブルの作成について、一つ一つ順を追って見ていきたいと思います。

動画はこちらになります。

0 データベースの作成任意のデータベースを作成してください。

ご不明な場合にはこちらをご参照ください。

https://note.com/standenglish/n/nc897697cbc4d

1 テーブルを作成する(おかしい部分は後で)1ー1 テーブルを作成するでは、mysqlに接続

もっとみる
【MySQL】データベースの作成〜削除などを学ぼう(動画付き)

【MySQL】データベースの作成〜削除などを学ぼう(動画付き)

こんにちは、MySQLをハンズオン形式で見ていきたいと思います。

こちらのサイトをもとに進めていきます。

とてもわかりやすいので、おすすめです。

動画はこちらです。

1 MySQLの準備MySQLの準備は行ないましょう。
ググると出てくると思います。

例えば私はMacですが、ここから行いました。

2 データベース一覧の表示(show databases;)MySqlへのログイン後、「s

もっとみる
(備忘録)【Rails】SQLインジェクションについて

(備忘録)【Rails】SQLインジェクションについて

こちらは自分用の備忘録です。

この記事を参考にしています。

1 SQLインジェクションの概要ポイント
① 不正なSQLの命令を注入すること
② データの漏洩・改竄につながる

2 クロスサイトスクリプティングとの違い① SQLインジェクション ⇨ 積極的な攻撃
② クロスサイトスクリプティング ⇨ 罠をはる

3 どんな結果を引き起こすのか①個人情報の漏洩
⇨「会員情報を全て表示」などの命令が

もっとみる
(備忘録)【DB】MySQLの照合順序(collation)について

(備忘録)【DB】MySQLの照合順序(collation)について

1 概要照合順序(collation)の変更により、大文字と小文字の区別や、ソート順を設定することができる。

2 照合順序の種類大きく4種類

3 確認方法

(備忘録)【DB】主キーと外部キーについて

(備忘録)【DB】主キーと外部キーについて

こちらは自分用の備忘録です。

こちらの記事を参考にしました。

1 概要外部キーには存在する主キーしか設定できない

2 参照先にないデータを登録しようとすると下のように制約エラーになる

3 参照先がなくなったらポイント
次の5パターンがある
① cascade 追従
② restrict 制限
③ no action 制限
④ set null nullが設定
⑤ set default d

もっとみる