私のRails3
アプリでは、私はActiveRecord
とPostgresql
を使用しています。ユーザーが動的モデル属性を作成できるようにしますか?
というモデルがあります。モデルには、価格、数量などの標準的な属性の小さなリストがあります。
ただし、顧客AはLotNumber
を追加し、得意先BはOriginalLocation
を追加することがあります。
どうすればいいですか?
私はPartsDetailモデルを作成して、タイプを持つことを許可しました。
class PartsDetail < ActiveRecord::Base
attr_accessible :type, :value, :part_id
belongs_to :parts
end
「タイプ」は「LotNumber」することができるように、など
しかし、私はそれが私の団体や照会にどのように動作するかはかなりよく分かりません。
アイデア?
ありがとうございました。あなたは、PostgreSQLを使用しているので
SQLの場合:どちらか動的スキーム(新しい列)、列内の非正規化(例えば、 JSON)、または列内のスキーマ(たとえばEAV)を表すスキーマです。 –
顧客をデータベース設計者として雇用するのは本当に危険なアプローチです。 –
@Catcall必ずしも「データベース設計者」であるとは限りません(これは、この質問の内容よりもはるかに大きなコンテキストを意味します)。しかし、*ビジネス要件のために*追加の "カスタム"プロパティをエンティティに付加することはかなり共通しています*。 *これを(何らかの形で)許可することは、ビジネス特有のニーズに対してマイナスになることがあります。 (この場合、CustomerBにはOriginalLocationが必要です) –