「hasmany」の一部はどの範囲ですか?
-
16-10-2019 - |
質問
私は、構造について話すとき、明らかにあなたが言うなら 「Hasmanyコメントを投稿」 多くのレコードがあります コメント それぞれに関連しています 役職.
私が理解していないのは、この種の用語がどのような文脈で使用されているかです。私は主にDBALまたはデザインについて話していると考えています。いずれにせよ、一つのこと」多くを持っています「別の別の方法とどこに現れますか?
解決
いずれにせよ、別のものが別のものを持っているとき、それはアプリケーションとデータベースのロジックでどのように/どこに現れますか?
私がこの質問に答えるために考えることができる唯一の方法は、あなたの質問に答えるかもしれないし、そうでないかもしれないHasmanyの別の例です。
エラー、私がテーブルを「コメント」と呼ぶべきだったが、ポイントは立っていると思う。
私はこれを知りません 本当 すでに持っていたものよりも理解するのに役立ちます。
それで、私はこれがどのように機能するかを示すかもしれないクエリも共有します:
declare @var char(5)
set @var = 'query'
select
c.id
,c.text
,c.author
from comment c
inner join post p
on p.id = c.parentid
1つの投稿には一般的に多くのコメントがあるため、これは多くの行を返すと予想しています(理論的には、もちろんすべての投稿にコメントがあるわけではありません)
アップデート:
したがって、関係についてのことは次のとおりです。図を介してモデル化するのは簡単です(この質問に答えるために私が引き出した最初のツールを参照してください)が、テキストを介して図を表示するのは困難です。したがって、1:Mまたは0:Nを意味するかどうかを定義しようとする代わりに、「Near English」で書いて、意図したことを言うだけです。ここにいくつかの選択肢があります:
one to one hasOne post hasOne author (not true for CW ;])
one to many hasMany The one in question
many to one belongsTo parent child, comments belongTo post
many to many hasAndBelongsToMany This describes a complex relationship
many to many to many hasManyAndBelongsToMany
ご覧のとおり、彼らは非常に複雑になる可能性があります。これは...もう一度! ...ビジネスロジックをよりシンプルで小さなチャンクにリファクタリングする必要があることを示します。
これらは「協会タイプ」と呼ばれることもあり、「書かれたもの」(多くの人から1つ)または「isownedby」(1対1? - コンテキストがキー)のような口頭で示される場合があります。
最後に「ハスマニー」コンセプトから離れる前に(まあこれは は 更新などが書かれている可能性があります)私は、それが「プレーン英語の説明」に役立ちますが、ActivereCordスタイルのインストールでも使用されていることに言及したいと思います。たとえば、Rubyを考えてみましょう。 http://api.rubyonrails.org/classes/activerecord/associations/classmethods.html この投稿の残り(これまでのところ)は、そのページから取得されます。
class Project < ActiveRecord::Base
belongs_to :portfolio
has_one :project_manager
has_many :milestones
has_and_belongs_to_many :categories
end
これにより、ActiverCord ORMはデータモデルを作成し、プログラム内のビジネスロジックで指定された関係を維持できます。しかし、私はルビーやレールを書いていないので、それは私があなたに言うことができる限り、それがそこに存在することを知っています。