※ 本文為 layzer 轉寄自 ptt.cc 更新時間: 2013-05-27 09:33:13
看板 PHP
作者 標題 Re: [請益] 隨即出現的留言區
時間 Sat May 18 12:39:42 2013
嗯... 我跨海來這裡隔山打牛好了
說實在內容完全跟 PHP 無關
版主要鍘我之前可以先鍘原 po 嗎? [逃]
※ 引述《addressl1O3 (波廢文需創意)》之銘言:
: 討論區 論壇 Facebook Blog 等等,
: 當發表新文章會隨即出現一個相對應的留言區塊,
: 請問這留言區是怎麼產生的?
: 這個留言區本身有沒有一個獨立的資料表?意思是說留言內容
: 有沒有存到資料庫?
: 還是說只是存進某個檔?
: 這個隨即出現的留言區在技術上到底是一個怎樣的概念?
: 感謝~
我常常會說,很多東西都是留言板
FB 我沒在用我不知道,就說 Blog
blog 主人發了一篇新 blog,其實就是增加了一個新留言
不管系統背後到底是 Database 還是檔案還是外星人(?)
系統總會需要「一個方法」去辨別這篇文章
用資料庫的講法就是 unique id(明明就應該說 primary key [指])
(當然如果你是用檔案,那檔名要 unique,其實意思都一樣啦)
用網站的說法就是 unique URL(有這種說法嗎? [指])
(當然如果你是用檔案,那檔名要 unique,其實意思都一樣啦)
用網站的說法就是 unique URL(有這種說法嗎? [指])
當然 unique URL 通常會搭配 unique id 來偷懶
不過這年頭 blog 的 URL 通常做的很絢麗,所以也很難講,跳過
好,接下來是文章之下,你關心的「留言區塊」
我先不考慮火鳳燎原那種「留言的留言的留言的留言」
而是像推文那樣,新 comment 一直往下蓋
那麼系統總需要「一個方法」
來辨別哪哪些留言是歸屬於哪個文章底下
至於這個方法到底是什麼,其實... 套用痞子CS唬爛三原則的頭兩條
「There is no spoon」加上「Layer, Liar」
你高興怎麼作都可以
用標準資料庫的想法
你有個 Post 這個 table,大抵上欄位會有
id //就是 unique id
content //內容
createDate //製造日期 [誤]
然後有個 Comment 這個 table,大抵上欄位會有
id //自己也需要 unique id
postId //歸屬於哪個 post
content //內容
createDate //製造日期
其他你要用檔案存也無所謂
一個 file 代表一個 blog post 跟底下的 comment
或著 blog post 是一個 file,其他 comment 塞在另一個 file
還是 blog post 跟各個 comment 都塞在不同 file
檔案內容包 JSON、包 XML 還是自己設計 syntax(字串 split 萬歲)
....... (我不想再騙 P 幣了)
總而言之,你需要「一個方法」
讓這一切能寫入、能夠讀取,過程不要出包
剩下就是寫起來快不快樂、效率好不好的問題
以上是以... 好像叫做 data flow 的角度來看你的問題
(用錯詞就算了,我不擅長烙專有名詞)
從 UI 的角度、或著說現今 web UI 的角度來看
(尤其你又沒事卡了一個「隨即出現」,真的是有豐富寬廣的想像空間)
問題又不太一樣
最傳統的網頁流程,可以看成是這樣
client server
(在 edit.php)
作 HTML 的 form submit
送出一個新 post
(newPost.php)
接收資訊,塞資料庫
導向 show.php
(show.php 中)
(撈出指定的 post 內容)
(撈出指定 post 的 comment 內容)
作 HTML 的 form submit
(newComment.php)
接收資訊,塞資料庫
導向 show.php
而最 AJAX 或著說 one page application 的流程
可以看成是這樣
client server
(始終都在 index.php 中)
按下「新增 post」按鈕
作 XHR
(newPost.php)
接收資訊,塞資料庫
XHR 成功之後操作 DOM
拿掉 editor 的區塊
顯示 post 內容、comment 輸入區塊
按下「新增 comment」按鈕
作 XHR
(newComment.php)
接收資訊、塞資料庫
更新 comment 區塊內容
要更「福潤德里」的話,還要用一些奇妙方法
讓 server 收到新 comment 時同時更新所有在看同一頁的人
如此之類這樣那般...
在進入 AJAX 領域之後,還能延伸出更賤..... 康的招數
例如很有名也很好用的 Disqus
用很粗、很概觀的角度去看,其實用的技術、運作原理差不多
只是資料存在別人家
然後對他來講是用網址當 unique ID
當然難度就差很多了...
AJAX 的部份跟 PHP 基本上已經完全沒啥關係了
只是這年頭,只要沒有細緻分工
基本上弄網站的人,這些都得要了解一點
////////以下純粹個人意見,不代表... 不對,本來就沒代表什麼 XD ////////
最後,奉勸你,除了暱稱改個嘲諷值比較低的名字外
know how 的東西不會,大抵上無所謂
有時候只是不知道關鍵字,而知道以後就也沒什麼
web 開發發展到現在,說實在很難入門(對我來講啦)
現在主流的 XHR,說不定以後都改成 websocket
整個概念跟寫作方式又得再翻一次
server side 的語言變遷、framework 變遷、database 變遷
client side 的環境變遷......
但是不知道 how to ask a question 就很嚴重
從你的內文、推文
除了知道你是個年輕(可能課業還不錯)、還摸不著頭緒的新手
完全不知道你的困擾點是什麼、你的問題是什麼
甚至連你的用詞都會造成別人的困惑
更不用說焦點看似前後反覆、簡直就是失焦
如果你真的不知從何問起
那你可以好好講個故事 or Scenario or Use case
指責回答的人看不懂你的問題,這更是一絕
(可是 M 大,我還是可以把你當成周星馳嗎? lol)
請不要把面對客服人員那套帶來一般的討論區
如果你寫技術文章人家看不懂,那是人家的問題
如果你提問的內容人家看不懂,那絕對是你的問題
我只能說寫 PHP 的人都比較和善,要是到某版... [奸笑]
====
沒想到打這種文章對我來說是種休息... [逃]
--
錢鍾書: 說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.2.112
推 :推!! 我也是後來才看懂原po的問題,問問題也是一種技巧1F 05/18 13:06
推 :推詳細解說2F 05/18 13:49
推 :很感謝您3F 05/18 13:58
推 :可是您就看得我問題啦 我覺得對方層次也是很重要
^^^^^^^^^^^^^^推 :可是您就看得我問題啦 我覺得對方層次也是很重要
我看不懂這一句,對不起,我是猴子,中文程度不太好
還有,如果你想分化一般人跟猴子之間的感情,省省吧
我只是隻猴子,寫寫 Java 都很吃力了,更不用說 PHP 了
簡單地說,這不是層次問題
因為我幾乎把整個 scope 從頭到尾都講了
而且講的也不是什麼深入的話題
就像百元理髮剪出來的髮型,根本談不上什麼層次
→ :要求不懂的人很清楚地陳述問題 也不太符合邏輯阿.....5F 05/18 14:04
推 :addr: 其實很主要的問題是,你用錯範例6F 05/18 14:05
→ :通常已經懂得人會以你發問的內容決定怎麼回答你,而你的例
→ :子是 "FB",大家當然只會針對FB的留言方式回你
→ :通常已經懂得人會以你發問的內容決定怎麼回答你,而你的例
→ :子是 "FB",大家當然只會針對FB的留言方式回你
師爺,翻譯翻譯,什麼 xx 的叫做 xx 的合邏輯
「要求不懂的人很清楚地陳述問題,不太符合邏輯」
這是你說的
那麼「要求看不懂你的問題的人,很清楚地回答你的問題」
這樣算合乎邏輯嗎?
從來都不知道用看別人的方法來對待自己
這到底算哪們子的合邏輯?
如果你聽不懂猴子話,那我想辦法用人話跟你講
除非你付錢給回答的人
不然這裡沒有人有義務要寫「你看得懂」的回答
更不用說,付錢也未必就是大爺
國王也是有被砍頭的
我本來只想在這裡當個和善的人(不對,是猴子)
既然在這裡叨擾了一個問題,那能力所及幫忙回答一下
看到你在濫用討論區資源
然後你的名片檔完全就是針對我而來的
我就只好透漏自己的猴子本性
對於有能力酸你的人來講,他們(對,包含我)
對討論區的貢獻度比你大的多了
就這樣
=====
有推文被吃掉的請見諒
※ 編輯: PsMonkey 來自: 114.25.2.112 (05/18 14:17)
→ :你的問題最簡單的問法就是,「留言怎麼做同串回覆功能」9F 05/18 14:06
→ :是你複雜化了= =
→ :是你複雜化了= =
推 :前面吵半天靠其他板友猜出大致意思 妳自知是新手就不11F 05/18 14:07
→ :能有誠意一點問問題 一直貶低幫助你的人?
→ :會用到Ajax的人層次絕對不會比 對照表的正規化水準低
→ :能有誠意一點問問題 一直貶低幫助你的人?
→ :會用到Ajax的人層次絕對不會比 對照表的正規化水準低
推 :有幾點對我的汙衊我想我必須要澄清一下,我沒有要求這14F 05/18 14:33
→ :裡的人必須要清楚地回答我問題.
→ :我不高心的原因主要是因為某些人不但誤解我問題還說一
→ :些酸我的話.如果說禮貌的話,恕我直言,有些禮貌真的比
→ :我差很多.我對事對人很分明,這點大大您自己反而承認你
→ :自己不是這樣的人,還說得這麼理直氣壯還真的讓我很無
→ :言,整個過程你根本酸過我,因為你跟沒出現,現在突然說
→ :某些話衝著你來.某些人的言語的確讓我很討厭,因為他們
→ :裡的人必須要清楚地回答我問題.
→ :我不高心的原因主要是因為某些人不但誤解我問題還說一
→ :些酸我的話.如果說禮貌的話,恕我直言,有些禮貌真的比
→ :我差很多.我對事對人很分明,這點大大您自己反而承認你
→ :自己不是這樣的人,還說得這麼理直氣壯還真的讓我很無
→ :言,整個過程你根本酸過我,因為你跟沒出現,現在突然說
→ :某些話衝著你來.某些人的言語的確讓我很討厭,因為他們
→ :抱歉樓上洋洋灑灑推了一堆但是我完全看不懂你想表達什麼22F 05/18 14:42
→ :無理挑釁,我在強調一次我某些情緒絕對不是針對所有人,23F 05/18 14:43
→ :只是針對某些人,要說出ID也可以.
→ :只是針對某些人,要說出ID也可以.
→ :我突然覺得我的猴子話,看得懂得人還比較多 lol25F 05/18 14:46
→ :同樣的,有些很友善的我也可以說出他們ID.26F 05/18 14:47
→ :至於你的回答,我看得懂看不懂我還是很感謝您...
→ :至於你的回答,我看得懂看不懂我還是很感謝您...
推 :妳要知道的是 妳在公開留言板 對任何一個回復妳的板友28F 05/18 14:49
→ :的態度實質上影響整個版的板友對你的先期認知
→ :然後我還真的不是很懂妳這堆推文解釋了什麼
→ :妳究竟對事對人取決於受者的觀感而不事妳的想法
→ :妳第一篇文章要吐血什麼的留言 回應的對象酸了你什麼
→ :回答妳問題還要被扯讓你很累 真的是滿有趣的觀點
→ :的態度實質上影響整個版的板友對你的先期認知
→ :然後我還真的不是很懂妳這堆推文解釋了什麼
→ :妳究竟對事對人取決於受者的觀感而不事妳的想法
→ :妳第一篇文章要吐血什麼的留言 回應的對象酸了你什麼
→ :回答妳問題還要被扯讓你很累 真的是滿有趣的觀點
推 :其實那篇回我的根本不是重點.34F 05/18 14:54
→ :我意思是說我沒有討厭他,他沒有讓我不高心阿
→ :某些情緒只是針對某些人而已,結果大家都對號入座.
→ :在別板問題出來沒多久,就有個丟我水球,說了一堆白目的
→ :的話,最後他得到的結論是我不會建資料表,還在推文說,
→ :白目的話用水球說,推文就變得很禮貌,這是什麼人?
→ :而且還是我叫他用推文公開說的.有時候大家對自己的人
→ :品還是要有信心一點,不是針對你就不要亂對號入座,假如
→ :真的覺得是在針對您的話,我不得不說一定心裏有鬼.
→ :我意思是說我沒有討厭他,他沒有讓我不高心阿
→ :某些情緒只是針對某些人而已,結果大家都對號入座.
→ :在別板問題出來沒多久,就有個丟我水球,說了一堆白目的
→ :的話,最後他得到的結論是我不會建資料表,還在推文說,
→ :白目的話用水球說,推文就變得很禮貌,這是什麼人?
→ :而且還是我叫他用推文公開說的.有時候大家對自己的人
→ :品還是要有信心一點,不是針對你就不要亂對號入座,假如
→ :真的覺得是在針對您的話,我不得不說一定心裏有鬼.
推 :猴大你是對的 XD43F 05/18 15:12
推 :確實是不會建資料表阿?44F 05/18 15:14
如果不是 PHP 寫的很煩,我實在不想來這裡講這些
只好先跟 gpmm 版主說聲抱歉
當然,我在這邊不是版主,講話可以比較隨性一點 [被毆飛]
我這麼多年來,回答過不少問題、寫了不少文章、灌了不少水
PTT 上發文次數至少超過 60% 是在 CompScience 群組內
無論是不是原本就打算酸人
也有一卡車人透露出「寧願我不要回他文章,也不要酸他」的訊息
當然,我不是什麼高手
說名人... 可能惡名昭彰的部份多一點
我只是藉著這個機會,順便碎念一下我看文章回文章的心情
也許能代表某些人、也許只能代表我自己
為甚麼我(們)願意花時間回覆一些問題、寫一些文章
基本上來說,絕對不是因為錢、也不是因為利
名聲可能有一點,但總歸來講
回答人家的問題沒啥實質好處
我(們)願意花時間回覆一些問題、寫一些文章
通常是出自於「我也曾經苦過來」的心情
很多 know how、know what 的事情
真的是知道就知道了,不知道的話要嘛自己矇著眼硬幹
不然就是花了 n 個小時才找到解
然後覺得還不如去桃園作房仲 [笑]
當然,更重要的是 know why
或著說,我(們)常常期待看到的是 know why 的問題
因為這種問題才有取捨、才有優劣
也才有「討論」的空間
不然只是單純的一問一答,就真的以為討論版是免費的技術客服中心
當然要到 know why 不是一蹴可幾
所以才會說社群經營、社群經營
從不會帶到會,從人數不多變成一個社群
這樣有能力一起來「討論」那些 know why 問題
然後才能知道自己的不足、了解自己的盲點
這是為甚麼絕大多數常常回答問題的人
會這麼討厭 Java 版稱之為「作業文」的問題
因為在這個資訊流通、google 好用的年代
會問這種問題的人,通常得到答案就跑了
他也壓根不會去問 why,也就談不上什麼求知慾
這是為甚麼絕大多數常常回答問題的人
會這麼討厭問題描述不清、甚至搞不清楚自己問題在哪裡的人
這可能比問作業文的人還糟糕
因為根本就是「整組嗨料料」,朽木不可雕也的困境
說真的,我(們)真的不那麼在乎禮貌不禮貌
我(們)只在乎是不是看到一個好問題
值得討論的、值得思考的「好」問題
那怕你不寫「各位大大你好,小妹是 PHP 新手求教......」
還是會有人去仔細看待、努力回覆你的問題
最後,奉勸 addressl1O3 一些話
當然你看得懂看不懂無所謂
基本上這個脈絡看下來,你是不太在乎別人在講什麼的人
事實上,我(們)現在也不太在乎你在講什麼
原因很簡單,因為你沒打算理解別人在講什麼
如果別人回答的不合你的意思、不是你想聽的東西
你就擺出「吼... 妳們都不懂我的意思」
但是你何嘗用過自己對別人的標準來審視你自己?
而當你在名片檔說「很多人都不太相信自己的人格」之類的話
我只能說,這是你唯一沒有自相矛盾的言論
你對你自己(展現出來)的人格太有自信了
這裡是技術討論區
沒人需要管你聽得懂聽不懂、高不高興、有沒有禮貌、有沒有解決問題
我(們)只在乎技術跟真理
以及能促進討論技術跟真理風氣的事情
推文如果吃掉那就再次抱歉
理論上我不會再騷擾版面了 [逃]
※ 編輯: PsMonkey 來自: 114.25.2.112 (05/18 15:52)
→ :addressl1O3板友如果有什麼想法你可以推文,不用一直45F 05/18 15:30
→ :丟我水球
→ :丟我水球
推 :只是理論上不會 XD47F 05/18 17:40
推 :嘖,可以 m 兩次…不…三次嗎!(握拳48F 05/18 18:13
推 :其實我比較在意猴大socket server的嘗試如何了 :p49F 05/18 18:28
→ :該板友蠻奇特的XD50F 05/18 18:38
→ :囧rz51F 05/19 12:08
推 :推曾經苦過,推用心花時間回文!52F 05/20 03:03
--
※ 看板: layzer 文章推薦值: 0 目前人氣: 0 累積人氣: 384
回列表(←)
分享