第一次做網站,關於網站構造方面想請問上

來源:互聯網
上載者:User
第一次做網站,關於網站構造方面想請教下
本帖最後由 xlrtx 於 2013-03-11 20:23:40 編輯


長短不一的字串(可能為空白字串)儲存到資料庫裡面還是儲存成文字檔?
我做的是一個線上購物的網站,每個使用者都會有個購物車

購物車(cart)裡面儲存了他們放進去的物品和物品的配置,

這個購物車(cart)儲存的資料結構就是一個array(我儲存成了json格式)

但是由於有的使用者有放東西有的沒有放,所以每個使用者的購物車資料長度都不一樣

請問購物車的內容(Json資料)我要儲存到資料庫裡還是保持成檔案?

如果儲存成資料庫, 我是放在user.cart裡面 還是放到cart.items裡面?

1)如果放到cart.items裡,系統會等到使用者添加物品到Cart裡面後,再添加資料到cart,並且把使用者的user.cart_id賦值為cart.id

當使用者吧cart.item清空,則user.cart_id=0,並且刪除對應的cartrow

2)如果儲存到user.cart裡面,每個user都會分配個很長的cart用來做儲存,不知道會不會浪費資源?(我不清楚資料庫的儲存格式..)

3)如果儲存成檔案,我會在每個使用者註冊成功後產生一個$userid.json,放到一個私人檔案夾裡面,只有伺服器可以訪問,裡面的內容可能是空.
資料庫 json


------解決方案--------------------
一般網站的購物車,是通過儲存session或者cookie的。
因為這樣效能稍微好一點。
------解決方案--------------------
1、將 session 從預設的檔案方式改換成資料庫方式
2、直接操縱 $_SESSION,無需 json
3、為滿足“註冊的使用者需要能夠訪問上次登入時的購物車”可在 session 表中增加一個使用者名稱(使用者id)欄位,並適當調整 session 回呼函數

於是:
如果考慮用資料庫儲存未結賬資訊,則 session 表已經做了。不必再做
如果考慮用檔案儲存未結賬資訊,則因為訪問量巨大,多層目錄檔案管理困難;單層太慢。非萬不得已,不與採納
------解決方案--------------------
不要為了程式而寫程式,那是為了提高自身水平才做的事

做實際工作時,沒有搞清商務程序就考慮技術流程是錯誤的
我只說說你想法中的幾點錯誤
1.沒搞清為什麼要保留購物車資料,只是為了保留而保留
其實大部分人已經接受了重新登入/掉線購物車清空的事實,因為這點而投訴的客戶幾乎沒有

2.“如果有人獲得了使用者的帳號密碼……”,帳號密碼遠比購物車資料重要得多,本末倒置了
如果我丟失了賬戶密碼,我不擔心別人看到購物車裡面放的是避孕套還是筆墨紙硯,而是擔心別人看到我的寄送地址和收貨人資料

3.問題必須都在程式解決
應該在商務邏輯解決的事情,卻由技術邏輯扛下來,是絕對的不會做生意(做事)的表現

購物車資料屬於臨時資料,完成一次購物(重新選擇也算完成),資料就沒用了――或者說轉換為訂單資料
現在最大的區別只是時間,就是這個“完成過程”所耗費的時間和多次瀏覽的問題,順便問一下,購物車裡面的資料放幾個月還有用嗎?
有些時候在技術有限的情況不應把問題想得複雜化,能做才做,不能做就如實反饋給商務邏輯層解決


非要轉牛角尖的話,我再給你出一個商務邏輯方面的難題:
我和家長控制(可能不少於3人)共用一個購物帳號密碼,同時在多重網路節點,購物並發貨到不同地點或相同地點(訂單不同),技術層面怎麼解決?說明:拒絕二次登入屬於業務層面邏輯而不是技術層面邏輯,我的意思是允許多重網路節點怎麼做?

還是花點時間做好需求分析吧,和業務部門溝通最重要
------解決方案--------------------
好多大牛。

我也要做類似的網站。

mark了以後看。

還在學習《PHP和MySQL Web開發》這本書,看了一半了。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.