Help us understand the problem. What is going on with this article?

【ふくだ学習録】SQLアンチパターン part2【16日目】

ふくだ学習録とは?

ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。

読了した本

データベースエンジニア養成読本 [DBを自由自在に活用するための知識とノウハウ満載!]
ゼロから作るDeepLearning
PHPフレームワーク CakePHP 3入門

今読んでいる本

SQLアンチパターン

SQLアンチパターンを読んで

SQLは宣言型プログラミング言語

SQLでは「集合」を基本的なデータ構造として使用する、宣言型プログラミング言語。
現在の状態どのように解決するか、について「関数を作成する」ではなく「もともと用意されている関数をどのように用いるのか」といった観点で考えていかなければいけない。

プログラミングパラダイムとは

blob型とは?

blob(ブロブ)型とは、バイナリデータを扱うデータ型。
格納できるデータのサイズは指定しない。

BLOB型とTEXT型

NUMERIC型とは?

NUMERIC(ニューメリック)型とは、非常に大きな数値を扱う型。
正確な計算を行うことができるため、通貨金額やその他正確性が求められる数量を保存する時は特に、この型が推奨される。
その代わりに、整数型、もしくは浮動小数点データ型に比較し、計算が非常に遅くなってしまう。

BIGINT型とは?

BIGINT(ビッグイント)型とは、広範囲整数。8バイトまでで表される数字。

UNSIGEDとは?

「負の数を表さない符号のない長い整数」を定義できるもの。
これを設定すると、シンプルに使える正の整数の範囲が倍になる。

ジェイウォーク(信号無視)

開発者が「多対多」の関連を表現する交差テーブルを避けて、カンマ区切りなどのリストを用いる。
こういったintersection(交差/交差点)を避けるアンチパターンを、ジェイウォーク(信号無視)と例えることがる。

外部キーを文字列連結させて一つのフィールドに格納するべきではない。

クエリを作ることが難しくなるから。理由としては。等価性による比較ができなくなるため、何らかの文字列パターンに対するパターンマッチが必要になってしまうから。

今日の一言

鼻水ジュルジュルやから今日はここまで!病院行ってきます!

fukuda_fu
フロントエンドエンジニアです。普段はReact書いたりしてます。 勉強がてらにアウトプットします。よろしくです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away