2012-05-08 10 views
2

サブスクリプションベースのサービスプロバイダーをモデル化し、「蒸気ロック」のケースを実行しようとしています。サブスクリプションベースのサービスのデータモデル

+---------------+  +-----------------+  +----------+ 
| Packages  |<--- | PackageServices | ---> | Services | 
+---------------+  +-----------------+  +----------+ 
    ^
     | 
+---------------+  +----------+ 
| Subscriptions |---> | Users | 
+---------------+  +----------+ 

はしかし、各サービスは、独自のユーザー定義の設定を持っている - と、各サービスがあります。各パッケージのレベルが1つ以上のサービスが含まれている - 私は、ユーザーがさまざまなサービスのパッケージに加入して、次のモデルを定義していますサービスデータを格納する他のエンティティの関連する配列を有する。特定のユーザーの各サービスのデータエンティティを処理することはできますが、設定テーブルで困惑しています。私は、ユーザーとサービスに鍵を握る "ServiceSettings"テーブルを作成することを考えましたが、それはちょっと変わったようです。このアプローチでは、次の質問が表示されます。

  1. パッケージをアップグレードして新しいサービスを入手するとどうなりますか?
  2. 新しいServiceSettingsはどのように設定または制限され、ユーザーはそれに従属しているサービスのみに制限されますか?
  3. 新しいサービスを追加するとどうなりますか?

私は適切な道にいるのですか、それとも私が行方不明と思われる別の選択肢ですか?

ありがとうございます!

+0

私は混乱しています。顧客はサービスから選択して独自のパッケージを作成できますか?それはala-cartか、あらかじめ作られていますか? ala-cartがpackageである場合サービス選択された顧客が選択できるオプションとサブスクリプションは選択されたパッケージサービスへの関連付けですか?あなたが新しいサービスを出してそれをパカクジに追加した場合、顧客はデフォルトでそれを取得しません(あるいはそうするかもしれません、それはビジネス上の決定です)。 – xQbert

+0

パッケージは関連するサービスに関してあらかじめ定義されます。新しいサービスを追加するという問題に関して、私は既存のパッケージを拡張する能力を考えていました。これは現在のすべてのサスペクティブに適用されます。 – BradBrening

+1

たとえば、顧客1は「パッケージ1」に加入し、5つのサービスを持つことができます。顧客2はパッケージ2に加入し、パッケージ1 + 3と同じサービスを提供します。パッケージ内のこれらのサービスには、ユーザーごとに(またはサブスクリプション毎に)設定された雑多な設定があります。 – xQbert

答えて

4

私はあなたのServiceSettingsが好きです。ただし、各サービスの設定の一覧を定義するだけです。これらのサービスの設定の値は、複数のユーザーがサブスクリプションを共有するが、異なるサービス設定を持っているか、できない場合に応じて、SubscriptionServiceSettingsまたはUserServiceSettingsのいずれかに存在している必要があります。新しいサービスを追加するときには、デフォルト値を指定して追加する必要があります。ユーザーは最初にそのデフォルト値を取得します。ニーズに合わせて変更することができます。また、ユーザーは新しいサービス設定に関する通知を必要とします。

彼らは彼らのパッケージをアップグレードし、新しいサービスを取得する場合:だから

が直接質問に対処するには? userServicesSettingsを使用してパッケージ設定を保持し、それらの設定を持つパッケージを購読する際に使用します。そうでない場合は無視します。

新しいServiceSettingsは、どのように設定または制限されていますか?ユーザーが遵守しているサービスのみに制限はありますか? これは、サブスクリプション、pacakage、packageservices、およびServiceSettings間の単なる結合です。 (あなたは、パッケージのバージョンを維持する場合を除き、それは思考の全体の異なるラインだ)私は新しいサービスを追加する場合はどう

新しいserviceSettingsを追加すると、UserServiceSettingsがデフォルトになります(または、ユーザーに通知が提供され、必要な情報を入力できるようになります)。デフォルトはダイナミックな環境で役に立ちます。人々があなたが必要とする意思決定をしていない場合。デフォルト値は、あなたがそれを変更しない限り、あなたはこれを得るでしょう;人々が不履行を受け入れるか、行動を起こさせる。

+0

あなたのご意見ありがとうございます。私はこの構造で遊んで、それが動作するかどうかを見てみましょう! – BradBrening

関連する問題