0

ビジネス データベースでメンバーシップの購入を受け入れて記録するために、組織のメンバーシップ製品をモデル化しようとしています。いつの日か、購入がオンラインで行われ、自動的にビジネス データベースに登録されることを願っています。

問題は、メンバーシップ商品があちこちにあることです。当団体に入会できる団体は4種類あります。組織の種類ごとに個別の料金表があります。組織の属性によって、スケジュールから支払う価格が決まります (たとえば、収益が 200 万ドルから 500 万ドルの場合、2000 ドルを支払います)。各料金表で使用される属性は異なります。たとえば、企業は年間収益に応じて支払いますが、学校はフルタイム相当の学生登録数に応じて支払います。さらに複雑なことに、割引プログラムがあります (たとえば、早期更新の場合は 12 か月の価格で 15 か月、リソースが不足している学校の場合は割引など...)。それで、

その上で、商品とトランザクションのデータ スキーマを十分に汎用的なものにして、すべての購入 (たとえば、メンバーシップの購入に加えてイベント登録やプログラムへの登録など) の記録のデータ ソースにできるようにする必要があります。

ヘルプ!!これは標準的なコマース データ スキーマのものだと言われましたが、オンラインで見つけることができたすべてのサンプル データ スキーマは、少なくとも私が知る限り、上記のことを行うことができませんでした。この種のことができるスキーマを見た人はいますか? もしあれば、それを私と共有できますか?

他のリードも大歓迎です。ありがとう!

4

1 に答える 1

1

ビジネスロジックをデータ設計から分離する必要があるようです。この問題に適用される最も単純なデータ構造を考えてみてください。その上にメンバーシップのロジックを置きます。

例えば:

CREATE TABLE payment(
     memeber_id INT,
     payment INT,
     expected_date DATE,
     payment_date DATE);

 CREATE TABLE credit(
     memeber_id INT,
     credit INT,
     last_movement` INT,
     next_movement INT,
     last_movement DATE,);

 CREATE TABLE member(
     id INT,
     membership_plan INT,
     ...)

これに加えて、たとえば、メンバーがクレジットを持っているかどうか、退会したかどうか、期待どおりに支払ったかどうかなどを非常に簡単に照会できます。ビジネス ルールは、このデータに基づいてソフトウェアで設定されます。メンバーシップ プランごとに、それを異なる方法で管理する規則が必要です。

より構成可能な方法でビジネス ロジックを構築することを計画している場合は、これらの計画をサポートするために、もう 1 つの一般的な Entity-Atribute-Value テーブルを追加することもできます。極端に言えば、各メンバーはこのテーブルをオーバーライドすることさえできます。

CREATE TABLE member_attributes(
         membership_type INT,
         attribute VARCHAR(30), --for example 'Monthly Pay', 'Membership duration'
         value INT)
于 2009-07-30T06:47:31.180 に答える