1

私はサービス プロバイダーの請求システムに取り組んでおり、カスタマイズ可能な設定スキーマという名前のものを実装する必要があります。主な機能は、管理者がさまざまな状況で必須のフィールドを定義できるようにすることです。たとえば、顧客がサイトでのみ登録する場合、姓、名、電子メール アドレスを入力する必要があります。請求可能なものを注文する場合は、基本的な住所データを入力する必要がありますが、特定のものが必要な場合は、請求先住所と配送先住所を入力する必要があります。各製品 (またはカテゴリ) の住所に必須のフィールドと、必須の住所 (請求、配送、メインなど) を管理者が定義できるようにしたいと考えています。1 つの製品/サービスに複数の住所が必要な場合、すべての住所に同じ必須フィールドのリストがあります。重要なことの 1 つは、追加フィールドの定義を許可する必要があることです。アドレス スキーマを選択するためのルールは、製品および/または国に基づきます。

私の質問は、この問題に適切なモデルは何であるべきかということです。顧客オブジェクトには住所のリストが必要だと思います。すべての住所には、名前 (Billing、Main、Shipping) とその値への参照が必要です。データベース側では、私の考えは、列として標準属性を持つ住所用のテーブルを 1 つ作成し、カスタム属性 (管理者が定義) 用に EAV テーブルを 1 つ作成することです。クラス テーブルの継承を検討しましたが、アドレスの属性の最終的なセットがないため、ここでは適切ではありません。2 番目のオプションは、カスタム属性を格納するために XML 列を使用することでしたが、そのデータ型を使用したことがなく、パフォーマンスについてはわかりません。EAV が標準のリレーショナル デザインではないことはわかっていますが、ここでは問題ないように見えます。しかし、私が言ったように、私はこの解決策のいずれについても 100% 確信があるわけではなく、他のアイデアを聞きたいと思っています.

前もって感謝します。

4

1 に答える 1

1

この議論を見てください。

于 2010-07-30T12:14:00.790 に答える