2012-08-13 90 views
1

我有一個通知系統,其中有各種類型的「評論」,「product_added」等,也有許多用戶。全球通知數據庫設計

基於用戶的朋友會看到通過用戶或他/她的朋友進行的操作發出的通知。事情是,我要保持它的朋友已經閱讀通知或沒有記錄,我已經在我已經存儲了一個表:

notification_id,  
type_id , 
item_id , 
user_id , 
owner_user_id , 
is_seen, 
time_stamp, 
title_html, 
title_text, 
body_html, 
body_text, 
href, 
icon_url 

我應該使用數組來存儲所有的朋友的ID誰看到is_seen中的通知,還是應該創建一個名爲notification_seen的新表,其中我保留了每個看到該通知的朋友的記錄?

所有通知將持續長達30天,並且還必須記住,如果用戶擁有多於200個朋友,則將200個ID保存在一個數組中,然後檢索它並打破數組,然後顯示它們(插入一個長根據我的程序)。

那麼,任何人都可以建議哪一個是更好的方式或更好的方式,我不知道?

+1

您可以使用每x天運行一次的cron作業(PHP腳本)刪除大於30天的通知。 – 2012-08-13 09:22:42

+0

cron工作的任何gud tuts?從未使用過 – 2012-08-13 09:38:49

+1

Cron作業是針對linux的,對於windows而言,它被稱爲任務調度。有關cron的更多信息:http://www.unixsurgeon.com/kb/cron-job-tutorial.html,關於windows schedular的更多信息:http://superuser.com/questions/80291/run-script-on-windows -every-n-minutes – 2012-08-13 09:46:18

回答

5

使用單獨的表格。關係數據庫中的數組總是一個壞主意,因爲如果沒有用戶定義的函數或查詢中的複雜表達式,就無法將數據庫操作和查詢應用於單個數組元素。而且它也不符合規範化範式。

+0

感謝@ALEX我以同樣的方式思考。數組會導致遵守標準化範例 – 2012-08-13 09:39:55