Re: [請益] 關於隨機文章問題

作者: GALINE (天真可愛CQD)   2015-08-05 19:53:13
※ 引述《gname ((′口‵)↗︴<><...<><)》之銘言:
: : 但又擔心被cookie檔案被解開有安全信的顧慮,
其實我覺得 cookie 沒啥不好,至少這不算什麼機敏資料...吧?
除了綁電腦跟 cookie 有大小限制以外沒想到什麼問題
嗯..好吧,每次都跟 request 一起傳回 server 感覺很冗,量大時看起來討厭
然後電腦換手機就會破功
: 突然想到一個很 low 的方法...XD
: 我會在加一個欄位:read
: 內容是把讀過的文章ID記起來, 例如: 11,22,33 這樣
: 然後撈DB時就用 not in 去撈......XD
: 至於"無限擴充"我個人覺得不用想那麼遠,想像一下文章應該會有時效性,
: 總不可能我進站你撈一個10年前的文章給我看吧?
「一個欄位」去存,那就是逗點分隔。這樣沒辦法用 in 來處理
MySQL 的話大概會用 find_in_set() 之類的鬼東西來下
或是整串讀出來用 PHP 邏輯判斷
缺點?
- Code 不好看
- 資料不好看
- 看過一百篇文章就是一百個逗點分隔數字,聽起來就很討厭
- 欄位長度有上限,沒辦法無限擴充
- 會被有強迫症的人(例如我)抱怨資料沒有正規化
符合正規化而且不會爆欄位的做法是開一個 article_read table
id user_id article_id create_time
作者: tas72732002 (蔥頭)   2015-08-05 20:36:00
效能是最大的隱憂
作者: GALINE (天真可愛CQD)   2015-08-05 20:38:00
效能要測過,固定讀三千筆資料會不會「太慢」要看情況而定當然情感上不喜歡,但是這會動 XD不過確定會越跑越慢的東西就必須避免,所以不能每次都掃整個 table, table 會變大...讀最近一千筆太多的話,那至少也可以讀進一百筆..是說文章變動頻率不高,可以寫 memcache 紀錄最近n筆id...
作者: gname ((′口‵)↗︴<><...<><)   2015-08-06 00:28:00
推~重點是要解決數量膨漲與範圍內的抓取資料,而不是任由膨漲再來解決效能問題

Links booklink

Contact Us: admin [ a t ] ucptt.com