2015-01-26 126 views
-2

我目前正在爲我的管理面板製作通知系統。現在,我有2個問題:PHP PDO通知系統

DB表:

CREATE TABLE IF NOT EXISTS `notications` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `uid` int(11) NOT NULL, 
    `type` varchar(265) COLLATE utf8_unicode_ci NOT NULL, 
    `link` varchar(265) COLLATE utf8_unicode_ci NOT NULL, 
    `text` varchar(265) COLLATE utf8_unicode_ci NOT NULL, 
    `seen` int(1) NOT NULL DEFAULT '0', 
    `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`) 
); 
  1. 什麼是設置通知見過(不能提供目前任何代碼的最好辦法,所以才告訴我這是最簡單的方法。)?

  2. 我將向管理面板上的所有員工發送相同的通知。那麼我應該在每個用戶ID的數據庫中創建多個記錄,還是有更好的方法來做到這一點?

+0

是否看到屬性需要成爲員工個人?你需要追蹤何時被看到?你想通知是可編輯的嗎? – 2015-01-26 19:39:11

+0

@KevinPei,對於個人來說,它必須設置爲1 = 1,因此它會從他/她的通知中刪除。 – 2015-01-26 19:40:50

+1

至於第2點:總是儘量避免數據庫中的數據重複。看起來你需要兩張桌子;其中一個通知和一個用於這些與用戶之間的鏈接。 – 2015-01-26 19:41:45

回答

0

由於您要求「更好的方式」,答案可能會有所不同。這是我對爲之:

  1. 有一個主表,列出通知
  2. 有一個表,專用於通知分發

enter image description here

這就是所謂的一對一很多關係。

優點?

  1. 您可以在不使用完全重複的通知表搞亂編輯通知的信息。
  2. 沿用了DRY原則

你怎麼讓它看到
有兩種可能的方式IMO:

  1. 有通知的用戶重定向到第一設置它的網頁到「看到」,然後讓該頁面將它們重定向到實際的通知鏈接

  2. 當用戶點擊的通知,請使用preventDefault()在javascript停止導航,發送AJAX GET請求一個PHP頁面,將其設置爲「可見」,然後使用location.href將用戶重定向到其目的地

+0

好的,謝謝!那麼我如何設置通知來查看? – 2015-01-26 19:50:29

+0

@JensJørgen在'notification_views'表中被設置爲true/1。 – 2015-01-26 19:51:22

+0

是的,但是當我點擊通知時如何做到這一點。我如何獲得它執行更新? – 2015-01-26 19:53:52

0
  1. 你有列 「看到」 你的表格。默認值爲0(未見),將其設置爲1,這意味着可以看到通知。

  2. 在表格通知中添加多個條目。條目具有不同的用戶標識(用戶標識),這樣你就可以獲得想要的用戶通知。

+0

我知道它必須設置爲1,但如何以最佳方式執行此操作?因爲當我點擊通知時,它會指示我的鏈接。 – 2015-01-26 19:44:08