2011-08-04 54 views
1

我有三個不同的用戶表,我想知道什麼是最好的方式來創建一個私人消息傳遞系統,他們溝通。私人消息系統與3個不同的用戶表

我試圖用簡單的分貝方案創建:

id (int) 
from (int) 
to (int) 
subject (varchar) 
message (text) 
timestamp (timestamp) 
read (bool) 
deleted_to (bool) 
deleted_from (bool) 

但由於三個用戶表,其中表中的用戶ID可以具有ID = 1個另一個用戶在表B的併發症即刻arised可以有ID = 2

有關如何創建更好的DB方案的任何想法?謝謝

+0

你能提供有關的3個用戶表的信息嗎? –

+0

另外,爲什麼你有三個不同的用戶表? – ashurexm

+0

一個是針對學生,另一個是教師,另一個是管理員......因爲不同的認證方式,不同的關聯模型等而設計的這種方式... – AlexBrand

回答

1

使用varchar類型的「model」列來保存用戶來自哪個用戶模型。 這樣你可以有幾個條目以「2」爲例。 model + user_id則必須是唯一的。

例如爲:

User1 3 
User1 5 
User2 3 
... 
+0

我會試試這個。 – AlexBrand

0

一個駭客解決方案是爲每個用戶創建一個散列並將其存儲在一個表中以唯一標識任何用戶。然後,使用散列,找出發送給哪個用戶的消息。

這當然不是一個好主意,因爲它會產生不必要的開銷,向數據庫發送多個查詢。如果可能,創建一個表來容納所有用戶,並使用一對一關係爲實體特定字段創建表。您的身份驗證方法將存儲在用戶表中。您的系統將會知道的後驗證身份,以及該單個用戶表中所述的所需數據連接在一起的表格。

0

您可以在表中添加兩個字段來存儲與fromto相關的「表」。