世界一適当な技術ブログ

日々学んだ内容をとにかくにブログ形式でアウトプットします。(技術系中心)基本自分用備忘録です。

データベース

DB設計をするときに気をつけていること

データベースはシステムの基盤です。 DB設計に失敗するとアプリケーションの実装が複雑になる、などの辛い思いをします。 また、後から修正するのは実装影響が大きいため容易ではありません。 DB設計する上で自分が普段気をつけている箇所を記載します。 1, …

ポスグレの初期化で詰まった話

DBをUTF-8で初期化しようとして下記のコマンドを入力 initdb /usr/local/var/postgres -E utf8 すると下記のようなエラーに遭遇 The files belonging to this database system will be owned by user "inouehiroki". This user must also own the server pro…

Firestore(NoSQL)について

Firestore(NoSQL)について 個人開発でNoSQのFirestoreを利用することになりました。 ただ、RDBしか触ったことがなく、色々と調査したのでその備忘録を残します。 Firestoreとは? Firestoreとはドキュメント指向NoSQLデータベースです。 RDBとFirestore(NoSQ…

複雑なクエリの場合はO/Rマッパーではなく直接SQL書いた方が良いという話

複雑なクエリの場合はO/Rマッパーではなく直接SQL書いた方が良いという話 RailsのO/Rマッパーだけでは複雑な条件取得の場合に役不足のケースがあります。 その場合は直接SQLクエリを作成する方が早いケースがあります。 例)直近1週間で60分以上ゲームした…

psqlコマンドでローカルに入る方法

Dockerのdbコンテナでpsqlコマンド打つ方法 psql -h 127.0.0.1 -p 15432 -U postgres -d hoge_development コネクションオプション Connection options: -h, --host=HOSTNAME database server host or socket directory (default: "local socket") -p, --por…

本番データ触るときはトランザクションに注意しよう

本番データ触るときはトランザクションに注意しよう(PostgreSQL) 保守運用していれば、本番データを直接いじりたいケースはあると思います。 ただ、本番データをSQLで変更するときはトランザクション貼ることを意識しましょう。 そうすることで、本番環境で…

データベース設計の超基本

データベースとは? - 大量の情報を保存し、コンピューターから効率よくアクセス出来るように加工したデータの集まり システム開発のプロセス 1. 要件定義(何を作るか) 2. 設計(どう作るか) <=== DB設計フェーズ 3. 開発(実装) 4. テスト(期待通りに動く…