|
|
|
สอบถามแนวคิดและวิธีทำ last update บน database หลายๆ user ทีครับ |
|
|
|
|
|
|
|
ก็กำหนด Data type ของ last update เป็น DATETIME ก็ได้ ตอน QUERY ก็
Code (PHP)
$sql = " SELECT * FROM ชื่อตาราง WHERE user_id = 'ไอดีของผู้ใช้นั้นๆ' ORDER BY last_update ASC ";
|
|
|
|
|
Date :
2015-11-18 15:29:00 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยกตัวอย่างนะครับ
tablemain
-id
-detail
-status
-lastupdate
สมมุติมี 3 user เข้ามาดูข้อมูลใน table นี้
-user1 กดเข้ามาดูแล้ว ข้อมูลใน last update ก็จะหายไป แต่ user2 user3 ยังเห็นอ่ะครับ เพราะยังไม่เคยกดเข้ามาดู
|
|
|
|
|
Date :
2015-11-19 09:18:24 |
By :
muanpear |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องเพิ่มตารางเก็บสถานะการเข้าอ่านครับ
ตารางที่ 1 (ตารางหลัก)
tablemain
-id
-detail
-status
-lastupdate
ตารางที่ 2 (เก็บการอ่าน)
tablemain_read
-id_main (อ้างอิงตารางหลัก)
-user_id (ผู้ที่เข้ามาอ่าน)
-access_date (วันเวลาที่เข้าไปอ่าน)
ถ้าเข้ามา 1 คนก็ INSERT 1 เรคอร์ด
|
|
|
|
|
Date :
2015-11-19 11:22:10 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้า tablemain มีการอัพเดต #record 1
user 1 , 2 ,3
ก็จะเห็นใช่ป่ะครับ
พอ user 1 เข้ามาดู ก็จะ insert เข้า table เก็บค่าการอ่านแบบท่านว่า
พอ user 1 รีเฟชอีกที ก็จะไม่เห็น #record1 แล้ว
user 2, 3 ยังเห็นอยู่
แต่ถ้าอีก 2 วันต่อมา #record1 มีการอัพเดต user1 ก็ต้องกลับมาเห็นนะ
แล้ว user ก็ไม่ได้เข้ามาดูทุกวัน
งงหนักเลยผม
|
|
|
|
|
Date :
2015-11-19 11:48:37 |
By :
muanpear |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ในตาราง tablemain_read ที่สร้างมาใหม่จะมีฟิลด์ access_date คุมอยู่แล้วครับ
ถ้าสมมติว่าอัพเดตตอนนี้ 2015-11-19 13:16:01
ก็นำเวลานี้ไปค้นหาในตาราง tablemain_read ที่ฟิลด์ access_date เวลาน้อยกว่านี้
ถ้าไม่สนใจเก็บประวัติก็ลบทุกรายการที่เข้ามาดูได้เลยครับ
รายการนั้นๆก็จะไม่มีประวัติของ user 1 เข้าไปดูเลย
หรือถ้าอยากเก็บประวัติไว้ก็ไม่ต้องลบ แต่ตอนคิวรี่ก็จะต้องเช็คเงื่อนไขที่ต่างกันไป
คือ แสดงทุกรายการที่ วันเวลา access_date < lastUpdate ของหัวข้อนั้นๆ
|
|
|
|
|
Date :
2015-11-19 13:17:23 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|