2012-03-14 56 views
0

我有一個數據庫設計問題。基本上我希望能夠爲用戶模型創建模式,然後在擴展用戶的其他模型中使用此用戶模型,但我希望以足夠通用的方式設計它,以便在每個應用程序中使用。什麼是模塊化用戶模式的最佳方式,因此它是通用的

例如一檔或帳戶模型可能擴展用戶,並在這兩種情況下,他們會根據你所設計,但用戶的核心憑證不應該在任何Web應用程序不同的Web應用程序是不同的。

你認爲應該在用戶模式什麼領域?

我覺得最起碼能夠成功地處理認證將是:(!明明)

  • 電子郵件(登錄唯一標識符)
  • 密碼(杜)
  • lostToken(一哈希驗證丟失密碼功能)
  • 角色(成員,管理員,編輯等。IMO這個角色的網站但它不具備下面是用戶模型太重要了,之間會有所不同的名單?)

現在我們進入另一個有趣的領域是非常非常有用:

  • createdAt(當賬戶創建時)
  • ip地址(跟蹤IP創建帳戶時)
  • refererUrl(它來自哪個站點)
  • lastLoggedIn(最後一次用戶登錄)
  • isOnline(是用戶在線)

甚至更​​多的字段是仍然非常有用:

  • 用戶名(可能不會在所有網站上使用)
  • 多個連續的登錄(類似棧網絡)

我覺得什麼都喜歡社交數據(喜歡,投票,輪廓視圖),徽章/成​​就,他們更新了自己的個人資料/帳戶/不管,而其他像他們的名字信息,最後一次在每個站點的剖面模型的歸屬。

您認爲如何?

回答

0

我想您一定是你需要已經整理出來。其他任何事情都取決於您的用例,我們不知道。

一個建議我大約是鹽和密碼 - 你應該使用類似BCrypt這將創建一個鹽醃哈希你作爲一個字段。

+0

這更多的是關於抽象代碼的可移植性比字段本身。我的意思是,大多數動態網站都可能具有某種形式的用戶身份驗證功能,但幾乎每個站點都需要存儲不同的信息。 目標是將每個站點需要的東西放入用戶。 – AntelopeSalad 2012-03-14 16:03:29

+0

好吧,我不知道你在找什麼樣的答案,但正如我所說,我認爲你已經想通了。你將它標記爲MongoDB - MongoDB是無模式的,並且非常靈活。你可以存儲任何你想要的東西 - 我會更多地考慮我的查詢模式,以瞭解我打算如何獲取數據。 – 2012-03-14 16:24:20

+0

是的,我用mongodb標記它,但我也使用node/express/mongoose(mongoose是mongodb的db驅動程序),並利用它需要的一些魔法來定義模式。 我沒有使用標籤來包含每一項技術,但希望將討論的重點放在數據庫模式上,而不是使用何種類型的數據庫,因爲「擴展」模型的方式將高度依賴於數據庫你正在使用,但在這種情況下也無關緊要。 – AntelopeSalad 2012-03-14 16:27:43

相關問題