2012-05-08 134 views
2

數據模型,我想一個基於訂閱服務提供商模型,並運行到的「氣阻」的情況下,如果你願意。我已經定義了以下模式,即用戶訂閱的各種服務套餐 - 每包級別包含一個或多個服務:基於訂閱的服務

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

然而,再有他們自己的用戶定義的每個服務設置 - 和每個服務有一個關聯的其他實體陣列來存儲服務數據。我可以爲特定用戶處理每個服務的數據實體,但我難以置信設置表。我曾想過爲用戶和服務創建一個「ServiceSettings」表格,但這似乎有點不可思議。這種做法給我留下以下問題:

  1. 如果他們升級他們的軟件包並獲得新的服務會怎麼樣?
  2. 如何將新ServiceSettings設置或受限於只在用戶susbcribed的服務?
  3. 如果我添加一個新的服務怎麼辦?

我在正確的軌道上,還是有另一種選擇,我似乎失蹤?

在此先感謝!

+0

我很困惑。客戶可以通過從服務中選擇來建立自己的軟件包嗎?它是ala-cart還是預建?如果ala-cart是包裹服務的選項,客戶可以從中選擇訂閱並選擇與包裹服務的關聯?如果您提出新服務並將其添加到pacakges中,則客戶默認情況下不會得到它(或者他們這樣做,這是業務決策) – xQbert

+0

軟件包將針對相關服務進行預定義。關於增加一項新服務的問題,我曾設想擴展現有套餐的能力,該套餐適用於所有現有用戶。 – BradBrening

+1

因此,例如:客戶1訂閱「包裹1」,並且可能有5個服務。客戶2訂購包2,並且它具有與包1 + 3相同的所有相同服務。包中的每一項服務都有一套針對每個用戶設置的配置(或每次訂閱?) – xQbert

回答

4

我喜歡你ServiceSettings;但僅限定義每個服務的設置列表。這些服務設置的值必須存在在任何一個SubscriptionServiceSettingsUserServiceSettings取決於如果多個用戶可以共享一個訂閱,但有不同的服務設置與否。在添加新服務時,您必須提供默認值以便添加時;用戶首先得到這些默認值;但可以改變他們以適應他們的需求。和/或用戶需要某種關於新服務設置的通知。

所以直接解決問題:

如果他們提升自己的包,並獲得新的服務? 使用userServicesSettings保留包設置,因爲他們訂閱具有這些設置的軟件包,使用它們,否則忽略它們;但保留它們以用於將來更改的服務(再次是業務問題)

新的ServiceSettings將如何設置或僅限於用戶已懷疑的服務? 這只是訂閱,pacakage,packageservices和ServiceSettings之間的聯接。 (除非你想保持軟件包版本,但是這是一個完全不同的思路)

如果我添加哪些新的服務?因此,您添加新的serviceSettings,UserServiceSettings是默認的(或提供給用戶的通知,以便他們可以填寫他們想要的,或兩者),現在你有需要的細節。默認值在動態環境中很有用,因爲人們不需要做出他們需要做出的決定。默認值說,你會得到這個,除非你改變它;導致人們接受違約或採取行動。

+0

感謝您的輸入。我會玩這個結構,看看它是否有效! – BradBrening