所以我建立一個web應用程序的一個辦公室,前端,後端,流動性,客戶賬戶,網上報名,員工帳戶,管理員帳戶......整個九碼。JPA:消息+通知DB架構
我的一個主要問題(因爲我沒有這麼做過)是用戶實體交互。 現在我已經定義了4個用戶實體可以與其他用戶交互的方法。
1)消息(和從用戶到...單個或多個用戶)
2)通知(從後端到用戶)
3)任務(和從用戶..至單個或多個用戶)
4)邀請(和從用戶到...單個或多個用戶)
(一個XMPP聊天引擎將被引入,需要記錄,但是那上的後注)
我決定爲每種類型實現一個com協議將是不合理的,所以我創建了一種抽象層(請不要殺了我,但那是我的感受)
因此,在每個用戶將有2所列出
private <Key> Sent_Parcels;
private <Key> Received_Parcels;
這些只是數組列表指向包裹實體(抽象層)將包含
private Key Sender; // Key of Sender User Entity
private List<Key>Recipients; // List of Keys of Recipients
private Type type; // Enum of Type : Message, Notification, Task, Invitation
private Key Payload; // Key of the payload object: Message Entity, Notification Entity ...
現在標準的創建,持久性,通知的東西......不擔心所有,因爲它的一個單一的COM協議,不同的有效載荷...從這一點不關心,因爲我可以通過包裹類型過濾所以...
然而,這裏有一些主要的擔憂(記住大規模實施) :
1)假設發送方和所有接收方決定刪除的有效載荷。這意味着所有創建的指向這個有效載荷的Parcel Entities都不見了......我如何找到任何人不再需要的有效載荷來刪除它們並在GAE數據存儲上節省寶貴的,昂貴的存儲空間。
2)我很確定在用戶之間實現一個com系統並不那麼簡單,所以如果有關這個主題的專家會出現並告訴我這完全是垃圾,那麼我會很樂意。
3)我選擇這種方法,因爲其具有重複的微小包裹實體,單個有效載荷是更好的是具有重複對在com操作中的每個用戶參與者大的有效載荷(即是完全一樣的)。但是,有重複的有效載荷將意味着,如果用戶刪除它,很好,沒有必要去挖掘誰仍然擁有有效載荷,因爲他是擁有它的唯一實體,另一方面,我覺得它的浪費太浪費了空間
歡迎所有的意見和建議...感謝很多傢伙的一切!
忘記重要的東西! ...實施閱讀前/還是新事物......會非常好,比如電子郵件。因此,關於如何完成這些主題的任何想法......將超級超級好,添加在打開包裹時向發件人發送通知的功能 –
發送通知:這只是在收件人打開「包裹」時以編程方式創建新通知 –