タグ

databaseと設計に関するmopinのブックマーク (3)

  • ユーザとユーザを多対多で関連付けるモデルを共通化する - Hidden in Plain Sight

    思いのほか前回のRailsプチ・デザインパターンの紹介に反応があったので、こういう小ネタも出していったほうがいいのかな、ということで第二弾。 ソーシャル系アプリだと、ユーザとユーザを関連付ける多対多のモデルがたくさんでてきます。たとえば、一般的なところではフォローとかブロックとか足あととか。さらにデーティングサイトになると、ウィンクだったり、Secret admirer(こっそりlikeするけど両思いだったらおめでとうって通知がくるってやつ)だったり、いろいろなモデルがこのパターンにあてはまります。 この場合、「AがBをフォローしている」「BがAをフォローしている」「AとBがお互いにフォローしている」という3つの状態があるわけですが、相互フォローの状態は「AがBをフォローし、かつBがAをフォローしている」と読み替えてSQLでも記述可能なので、以下ではシンプルに単方向のグラフで全てを扱うもの

    ユーザとユーザを多対多で関連付けるモデルを共通化する - Hidden in Plain Sight
  • データベースアプリケーション開発を炎上させる負のスパイラル

    毎度おなじみ、はてブのホットエントリに「SIをダメにする負のスパイラル」というタイトルのまとめが掲載された。きしだ氏とはかなり視点は違うものの、開発現場の問題点については少し思うところがあるので意見を書いてみようと思う。と言っても、以下の話の内容はデータベースアプリケーションに限定した話であり、またSIerだけに限った話ではないのでその点はご容赦頂きたい。もちろんSIer各位の案件はデータベースは必須なので、エントリで触れる問題点には該当するだろう。 Q.なぜ炎上するのか? A.正しいデータベース設計ができていないから結論から言おう。データベースアプリケーションの開発が炎上するのは正しいデータベース設計ができていないからだ。ここでいう「正しい」とは、論理的に証明できる正しさという意味ではない。「来こうするべき」といった意味で捉えて欲しい。 「炎上」というのは、例えばテストが通らない、バ

    データベースアプリケーション開発を炎上させる負のスパイラル
  • やさしくわかるデータベース・チューニング

    データベースを利用したシステムのパフォーマンスは、『チューニング』という作業によって大幅に改善されます。 プログラムを変更せずに、いきなり処理時間が500~1000分の1に短縮されることもマレではありません。データベース・チューニングって魔法みたいだと思いませんか? このテキストは、Oracleデータベースを使用したシステムのチューニング方法について詳しく説明していきます。 データベース・チューニングすなわちシステムの調整は、『設計』、『開発』、『運用』のフェーズにて行います。(システム構築とは『分析』→『選定』→『計画』→『設計』→『開発』→『導入』→『保守』→「分析」と、各フェーズが循環している) それぞれのフェーズ別に解説していますので、それぞれの担当者が、その段階にて各項目の内容を1つずつチェックして下さい。 チューニング方法について、22章68項目にまとめましたので、Oracle

  • 1