記事

複数のテーブルに多対1で紐づく時のテーブル設計のアプローチについて

データベース

概要複数のテーブルに対し、多対1でテーブルが関係付くときのテーブル設計のパターンについてまとめる。 データ設計以下のようなケースのデータ設計を例とする。  issues id title pullrequests id title comments id content commentsがissues、pullrequestsのどちらに対しても多対一で関係付くようなケース。 ...

ポリモーフィック SQLアンチパターン

Clean Architecture 達人に学ぶソフトウェアの構造と設計

システムアーキテクチャ

Clean Architecture 達人に学ぶソフトウェアの構造と設計を読んだ。 Clean Architectureについて学びたいは本書と著者のブログをまず読むのが良いと思う。 Clean Architectureについての明確な定義は語られていない よくある同心円がClean Architectureであるとも主張されていないし、レイヤー構造を持つことが前提だとも書かれていない(ルールを...

Clean Architecture アーキテクチャ

ER図のリレーションシップの種類について

データベース

概要ER図のリレーションシップの種類についてまとめる。 ER図のリレーションシップの種類ER図のリレーションシップには3つの種類がある。 リレーションシップの種類 テーブル関係 線の種類 依存リレーションシップ 子テーブルが親テーブルに依存(テーブル間に親子関係がある) 実線(親→子) 非依存リレーションシップ 子テーブルが親テーブルに依存していない(テーブル間に親子関係がない)...

ER

MySQLのJOINとUNIONについて

データベース

概要MySQLのJOINの種類とUNIONについてまとめる INNER JOIN指定カラムの値が一致するレコード同士を結合する。指定したカラムの値が一致しない場合は結合しない。(両方のテーブルに一致するデータだけ結合される。) users+------+--------+------+| id | sex | name |+------+--------+------+| 0 | ...

MySQL join union

Linuxのパーミッションの読み方と指定方法について

コンピューターアーキテクチャ

概要Linuxのパーミッションについてまとめる パーミッションの読み方ファイル種別最初の1文字は、ファイル種別を表している。 ファイルd ディレクトリl シンボリックリンク 以降3文字単位でファイルのオーナー別に権限を表している。 2~4文字目 ユーザー ファイルの所有者に対する権限5~7文字目 グループ ファイルの所有グループに対する権限8~10文字目 その他 その他に対する権限...

Linux パーミッション

JavaScriptで始めるアルゴリズム

アルゴリズムとデータ構造

概要JavaScriptでアルゴリズムを学ぶ。 サーチのアルゴリズムリニアサーチリストや配列のデータに対して、先頭から順番に比較を行っていくアルゴリズム。 配列の長さ分処理を繰り返し、目的のデータに到達したら処理を終了する。目的とするデータが後ろにあるほど処理が遅くなる。 const targetData = 5; const data = [1, 2, 3, 4, 5, 6, 7, 8, 9, ...

バイナリーサーチ リニアサーチ バブルソート セレクションソート

Unixコマンドメモ

コンピューターアーキテクチャ

概要Unixコマンドのメモ。 jqJSON形式のデータを加工するコマンド。 JSONのPretty Printecho '[{"name": "Tom", "age": 20}}]' | jq . Pretty Print以外にもオブジェクトからプロパティを指定してデータを取り出したり、オブジェクトの長さを取得したり、色々...

unixコマンド jq tee

プロセスとスレッドの違い

コンピューターアーキテクチャ

概要プロセスとスレッドの違いについてまとめる プロセスとは プログラムの実行単位 CPU上で実行される リソースの共有はできない 専用のメモリ領域を使用 仮想アドレス空間を保持している プロセスの切り替えには仮想アドレスと物理アドレスのマッピング必要 プロセスの保持するデータ構造プロセスがメモリに保持しているデータ構造は2つのセグメントに分かれている。 テキストセグメント プログラムの...

os スレッド プロセス スタック ヒープ

GraphQLとは

アプリケーション

GraphQLとは Facebookが開発 APIのためのクエリ言語 APIのリクエストのデータ形式とレスポンスのデータ形式が似ているため、ユーザーフレンドリー RESTはアーキテクチャ(設計)であり、GraphQLは言語(DSL)である REST APIとGraphQLの比較REST APIのAPI形式エンドポイントに対して、HTTP動詞でリクエストを投げる curl https://ap...

API HTTP REST GraphQL