2014-04-28 89 views
0

我有一個小問題。PHP/MYSQL通訊閱讀/未閱讀系統

  1. 表(USER_TABLE)

    ID |用戶名|名稱|密碼

  2. 表(通訊)

    id |日期

  3. 表(newsletter_posts)< - 此表對於我的問題不是很重要。

user_table是靈活的,這意味着,有時我創建新用戶,有時我刪除用戶。

時事通訊表也很靈活。

本月

1 | 12345678 

下個月

2 | 23456789 

等等...

但我怎麼可以創建一個讀/未讀表的所有通訊和所有用戶。我每年有大約100個用戶和12個時事通訊。

問候

丹尼斯

回答

0

您創建了一個將新聞簡報表與用戶表關聯的表格。

newsletter_user 
---------------- 
id 
user_id 
newsletter_id 
created_date 

當用戶閱讀新聞簡報時,應該發生(插入)行的存在。如果沒有行,用戶還沒有閱讀新聞通訊。在user_id,newsletter_id上創建唯一索引。

+0

感謝您的評論。我有同樣的想法,但是,當我有大約100個用戶和12年通訊每年我有3年3600行... – user3126094

+0

是的,這不是一個問題。關係數據庫旨在有效地處理這樣的長/薄表。對於關係數據庫來說,3600行絕對沒有什麼用處,特別是當您只需要查找某個特定行的存在時。僅供參考我的經驗包括與數百萬用戶合作。 – gview

0

你應該有

user id | newsletter id | status 

表然後你就可以查詢的通訊,看看誰讀過它,或者在用戶看到他們讀什麼簡訊

如果你想要的話,你還可以添加一些日期字段,比如說如果你想跟蹤日期的數據。

0

只需創建一個映射表。您可以將其命名爲newsletter_users_log。它可以有樣柱:

  1. ID - > BIGINT自動遞增
  2. newsletter_id - >外鍵通訊表
  3. USER_ID - >外鍵的用戶表
  4. DATE_SENT - >日期時間