0
私はチームに関する多くの選手と統計を持つ野球チームのモデルを持っていたいと思います。テーブルは2つのモデルに属していますか?
同じ統計情報を持つプレーヤーのモデルも必要です。
スタティックステーブルをBaseball ModelとPlayer Modelの両方に属することができますか?
私はチームに関する多くの選手と統計を持つ野球チームのモデルを持っていたいと思います。テーブルは2つのモデルに属していますか?
同じ統計情報を持つプレーヤーのモデルも必要です。
スタティックステーブルをBaseball ModelとPlayer Modelの両方に属することができますか?
多型関連を使用できます。あなたは
class Statistic < ActiveRecord::Base
belongs_to :statisticable, polymorphic: true
end
野球モデル
class Baseball < ActiveRecord::Base
has_many :statistic, as: :statisticable
end
プレーヤーモデル
class Player < ActiveRecord::Base
has_many :statistic, as: :statisticable
end
あなたの移行ファイル統計モデルのhere
統計モデルを参照することができ
class CreateStatistic < ActiveRecord::Migration
def change
create_table :statistics do |t|
t.string :strength
t.string :defensive
t.string :attack
t.references :statisticable, polymorphic: true, index: true
t.timestamps null: false
end
end
end
"同じ統計"とは、データを複製してから、それをしないことを意味します。リレーショナルデータベースの全体のポイントは、冗長なデータを避けることです。データを一度保存して、必要に応じて参照してください。チームのデータとプレーヤーのデータを分離できなければならないときに、なぜ統計テーブルを共有する必要があると思うのか分かりません。 – MarsAtomic
@MarsAtomic私は両方とも、統計テーブルに自分のエントリが欲しいということを意味しました。プレイヤーとチームの両方が打撃平均、打点、ホームランなどを持っているように – user5478032
あなたは本当に別の質問をしているときに1つの質問をしていると思うことがあります。チームの統計情報は、そのチームに所属するプレイヤーのデータを集計するだけのものではありません。したがって、SQLクエリを使用してオンザフライで計算することができます。 'player_statsからのsum(homers)の選択(team_id = 2、player_status =" active ")この問合せは、IDが2のチームの人事総計を取得します。 – MarsAtomic