2010-09-06 1431 views
4

我正在構建一個社交網站的數據模型,並失去了如何建模用戶和帳戶。社交網絡設計中User和Account對象的區別?

1)用戶註冊並創建一個帳戶。因此,我們爲用戶分配了一個用戶ID,就像我們看到的大多數社交網站上的用戶ID一樣,該用戶ID是相同的配置文件ID現在的賬號是否也是? OR還有一個單獨的帳戶ID還隱藏了嗎?如果用戶可以有多個配置文件,那麼用戶ID是獨立於與每個配置文件ID分開的帳戶ID?

2)我們假設1個用戶只有1個帳戶。但是當用戶正在編輯他的賬戶或者假設管理員編輯了用戶的賬戶時,用戶正在編輯一個賬戶,因此需要兩個獨立的ID來模擬這個賬戶?

3)用戶和賬戶對象的生命是什麼?如果用戶關閉了他的賬戶,那意味着用戶和賬戶對象都被殺了?

4)誰擁有用戶配置文件的詳細信息,用戶設置,隱私,朋友等?用戶對象或帳戶對象,以及哪個對象優越?

5)有用戶可以創建/管理的系統對象,例如照片,視頻等,那些用戶擁有的還是賬戶對象?

6)究竟是什麼使一個對象?假設我們有狀態更新,評論,個人資料詳情。這3個對象?或者全部考慮1種類型的對象和3種類別?

回答

1

我理解你的觀點,關於用戶與配置文件,但用戶與帳戶?

對於我的大部分設計,這是同樣的事情。你的大部分問題似乎都源於這種混淆。爲什麼你需要單獨的ID?你爲什麼要區分這兩者。如果你有需要,那麼也許是這樣。例如,也許你有一個跨越多個服務的用戶帳戶。該用戶具有不同服務上的單獨帳戶信息,但具有相同的登錄信息。在這種情況下,您需要有兩個單獨的對象:登錄(在認證系統中)和帳戶(在實際應用程序中)。但我不認爲你正在創建如此龐大的系統。沒有?

6) 如果所有這些不能用相同的代碼表示,它們必須是單獨的對象或派生自類似的對象。例如,在某些門戶網站中,我看到PM(私人消息)系統看起來像是兩個或更多人之間的私人論壇主題。沒有看過源代碼,我會想象那個論壇的主題/線程是相同的或相似的,可能來自同一個對象。

+0

用戶vs賬戶我覺得,因爲如何建模一個員工編輯用戶的賬戶細節?我將UserType建模爲Admin,Employee,Test,Member,Visitor。另外,帳戶可以是商業帳戶,廣告客戶帳戶等。除非我在帳戶下方使用這些功能,並且與帳戶不在同一級別。想要在開始時安全地播放它,所以一旦實時數據流入,就不需要更改模型。 – kei30 2010-09-06 01:30:00

+0

除非這些「賬戶」用於您要構建的單獨軟件,否則它們並不真正有用。您可能希望擁有可以分配給用戶的「角色」。所以用戶:1是管理員,經理等。這是一對多的關係。所以你需要一個表格來保存它。表:用戶,角色,userrole。 userrole是:userid,roleid ..類似的東西。有很多方法可以做到這一點。您可能想要閱讀一本書或關於數據庫設計的內容。我會幫助你制定一個更有前途的數據庫。 – 2010-09-06 10:05:33