請你畫出一張短網址服務的後端系統架構圖,越詳細越好,可以考慮到如何增進效能、scaling 以及備份資料。
沒靈感的話可參考:短网址(short URL)系统的原理及其实现、Design TinyURL
圖片可參考下圖(這是一張 Mobile 與 Web 前端如何跟後端溝通的圖,這示意圖只是大概講一下應該要怎麼畫,但你實際畫出來一定跟這個長得不一樣):
請把你之前寫的 PHP 程式部署到自己的機器上面,並且對應到自己購買的網域。
除此之外呢,我們在第六週的時候有實作過「通行證」的機制,其實在 PHP 裡面有內建的可以用,而這個機制就叫做 session。可以參考 PHP 5 Sessions 或是 PHP Session 使用介紹,啟用與清除 session,把之前留言板的作業改成用 PHP 內建的 session 機制。
Transaction 就是一筆交易的意思,在後端應用上非常常見。
舉例來說,假設我現在做一個購物網站,然後購物車裡面有五個產品,接著我按下結帳購買按鈕。此時我會執行五個 SQL Query,分別把每一個產品的剩餘數量都扣一,接著新增一筆訂單紀錄。
可是,假如有一個產品剛好賣完了,那怎麼辦呢?我必須把剛剛扣的都自己再加回去,這樣並不是一個好方法。因此我們需要將上面的 SQL Query 都放入一個 Transaction 裡面,要嘛就是全部成功,要嘛就是全部失敗。
現在請你寫一個非常簡單的購物系統,來試試看 Transaction。
- 什麼是 DNS?Google 有提供的公開的 DNS,對 Google 的好處以及對一般大眾的好處是什麼?
- 什麼是資料庫的 lock?為什麼我們需要 lock?
- NoSQL 跟 SQL 的差別在哪裡?
- 資料庫的 ACID 是什麼?