1

私が求めていることを説明するための正しいデータベース用語がわからないので、説明するために最善を尽くします。

has_one送り先の送り状モデルがあります。

請求先は、社内部門または社外部門のいずれかです。

乱雑に感じる列を持つ請求書テーブルを使用してこれを設定できます (多くの nil 列が残ります)。

internal_invoicee および external_invoicee テーブルを設定し、必要に応じて 1 つだけ作成することができますが、2 つの異なる関連付けを管理する必要があります。

次に、インボイス モデルにインボイス メソッドを設定し、存在するインボイスに応じて内部または外部のインボイスを返し、ビジネス ロジックを管理して、常に 1 つだけが存在するようにします。

この 2 番目の解決策は、それを行うより良い方法のように思えますが、それでも私には面倒です。Railsでこれを行う組み込みの方法はありますか? 逆にだけ多形連想って感じ。

私は NoSQL データベースを見たことがないのですが、これは NoSQL データベースが得意とするようなものでしょうか?

4

1 に答える 1

1

内部または外部だけでなく、さらに多くの部門を持つ予定ですか? それとも、別の部門テーブルへのカスケード更新が必要ですか?

そうでない場合は、ブール値の department_type 列を請求書テーブルに追加します。関係は必要ありません。

その場合は、請求先モデルにメソッドを記述して、外部キーで部門タイプを判別します。department_id 列とinvoice_id 列をinvoicee に追加し、invoicee_id 列をinvoice に追加します。

請求先、部門、および請求書でhas_one :departmentおよびを使用します。has_many :invoiceshas_many :invoicesbelongs_to :invoicee

補足: 請求先よりも適切な名前を選択できますか? 請求書に近すぎて紛らわしい!

于 2012-07-18T07:41:06.217 に答える