質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

解決済

4回答

393閲覧

途中から参加したプロジェクトのモデルを把握するコツ

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

2グッド

2クリップ

投稿2019/01/17 06:37

編集2019/01/17 07:38

先日からIT系のベンチャー企業でアルバイトをさせてもらっており、途中からプロジェクトに参加しました。上の人からは「まずはじめにモデルのアソシエーションを確認してみよう」的なことを指示されたためmodel内のコードを眺めてER図を書いたりしてアソシエーションを確認しているのですが、情報量が多すぎて整理が難しいです。コツなどがあれば教えていただきたいです

set0gut1, s_diff👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

set0gut1

2019/01/17 07:22

個人的にはすごくよい質問だと思います。 タイトルを、複雑なDBの把握のコツ〜みたいな感じに変えて、タグもデータベース関連のものに変えたほうが有益な回答が集まるかと思いました。
退会済みユーザー

退会済みユーザー

2019/01/17 07:35

ありがとうございます。参考にさせていただきます。
guest

回答4

0

それはteratailではなく、現場の上の人に質問すべき内容なのでは?

質問するのも立派な仕事ですよ。
上の人は忙しそうに見えるかもしれませんが、質問されるのはわりとされる側としてはうれしいものです。

「コツとかありますか・・・?」と聞いてみてはいかがですか?

投稿2019/01/17 06:51

azuapricot

総合スコア2341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

あんまちゃんとした回答じゃなくて個人的な経験談なのですが、前にテーブルが数十個あるDBの現状把握をやったことがあって、そのとき捗った手法をシェアします。

  • 個々のテーブルのフィールドは無視して、エンティティの1:多関係のみER図に書き起こす
  • 多:多のリレーションは使わず、中間テーブルにも1エンティティ割り当てる
  • できたER図をばねモデルとかでグラフ描画するツールに突っ込むと、関連性の高いエンティティが近くに寄って表示される(複数のデータソースやシステムをまたがってDBが存在しているとき、どのエンティティがどのデータソース/システムのものか一目瞭然になる)

投稿2019/01/17 07:17

set0gut1

総合スコア2413

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/17 07:45

ばねモデルはアプリケーションですか?
set0gut1

2019/01/17 08:01

やったときは graphviz の sfdp layout かなにかで png 画像にして見てたんですが、 javascript でブラウザ上に描画して drug でグリグリ動かせるようなのものあるので、そーゆーのの方が良いかもです。 ばねモデルじゃなくて力学モデルのほうが正しかったみたいですね。 「力学モデル javascript」とかで検索すると動くサンプルもあるので見てみてください。
退会済みユーザー

退会済みユーザー

2019/01/17 08:21

ありがとうございます。
退会済みユーザー

退会済みユーザー

2019/01/17 09:50

お聞きしたいのですが、なぜ1対多関係のみなのでしょうか。1対1関係を無視する理由を教えていただきたいです。
set0gut1

2019/01/17 09:56

あ、多:多(とか多:多:多)をそのまま図にすると把握しにくいから個人的に中間テーブルに1エンティティ使った方が好きってだけの話なので、1:1は別にオッケーです。
katoy

2019/01/21 14:24

> ... png 画像にして ... svg にすると表示拡大しても文字が潰れずに表示できて便利です。 (全テーブルを一画面に収めようとすると、字が小さくなりがちなので)
set0gut1

2019/01/21 14:25

確かに!ありがとうございます。
guest

0

モデルに書いてあるhas_manyやbelongs_toに注目するとモデル同士の関係性がわかりやすいかもしれません。

例えば、model/user.rbに

has_many :requests

と記述されているとしたら、

ruby

1User.last.requests

のようにuserインスタンスに紐づくreqeustsテーブルのレコードをすべて取得できますし、

model/request.rbに

belongs_to :user

と記述があれば、

ruby

1Request.last.user

のようにしてrequestインスタンスに紐づくusersテーブルのレコードを一つだけ取得します。

投稿2019/01/17 06:50

編集2019/01/17 06:52
s_diff

総合スコア107

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

プロジェクトの設計文書中に ER 図はないのですか?
なければ, あなたが ER 図をつくると良いです。
すでにあるけど、それが現状と解離してしまっている場合も同様です。

現状の DB から ER 図を生成してくれるツールもあります。(schemaspy など。google 検索してみてください)
自動生成した図は複雑になりがちなので、それをベースに設計思想が理解しやすい ER 図に書き直しをするとよいです。

model/*.rb の has_many, has_one, belongs_to などを追っていって図を書くだけでも概要がつかめるようになるはずです。

投稿2019/01/17 22:43

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問