需求:
廣告位表 p(編號,名稱,目錄,規格)
廣告位有三種狀態,空閒,試用,已售
乙個廣告位只能有一條當前有效銷售記錄(etime>now),不能在s表中新增開始時間不是當前時間使用記錄,當然不能把以後的時間提前買給別的使用者(預售)
狀態轉換
空閒--(啟用)-->試用|已售
試用--**正)-->已售
試用|已售--(中止)-->空閒
試用|已售---(調整)-->試用|已售 注意,試用調整後依舊是試用,已售也一樣
試用|已售--(到期)--->空閒
已售---(繼費)-->已售
廣告位的狀態由銷售表計算獲得,需要能檢視廣告位的操作記錄(狀態轉換前後記錄)
**上有,有多使用者併發的情況,需要啟用事務--在狀態轉換時鎖定銷售記錄表
銷售記錄表s(編號,負責人,操作,開始時間,結束時間,廣告位編號,狀態,轉換,iscut,...)
說明 s.btime開始時間,s.etime 結束時間
iscut=1表示為歷史記錄(可以考試使用歷史表)不過直接標記成iscut更便捷
查詢空閒廣告位
select ... from(
select p.編號,max(s.etime)
p left s on p.編號=s.廣告位編號
s.iscut=0
group by p.編號) as t inner join 其他關聯表
where t.etime < getdate() or (t.etime is null)
查詢使用廣告位(試用,已售)
select ... from p inner join s on p.編號=s.廣告位編號
where s.iscut=0 and s.etime >=getdate()
狀態轉換:
1.讀取s表的廣告位編號為***並且etime>=getdate() and iscut=0的記錄
2.鎖定s表,再次判斷 iscut=0是否成立
3.設定iscut=1
4.插入狀態改變後的新記錄iscut=0
5.釋放鎖
定時上線廣告位
今天要做乙個廣告位定時上 下線的功能。想到了要用定時任務定時執行,但是這樣只能處理執行定時任務的這個時間點的任務。比如10點執行任務,其它如10 10 10 20 10 30 等等沒法正點去執行。開始是考慮的允許乙個時間延遲,打乙個時間差 10分鐘執行一次,執行當前時間之前10分鐘範圍內的資料。比如...
MVC WCF框架下廣告位管理 檔案上傳
廣告位是 中必不可少的內容之一,也是能直接給我們 帶來經濟收益的內容之一。好的廣告位不僅不會強賓壓主,而會為我們的 錦上添花,起到畫龍點睛的作用,因此設計好廣告位也是開發過程中一大重要環節。最近在做乙個珠寶檢測站的專案,其中管理頁面就涉及到了廣告位管理,之前專案中也有不少有廣告位的,但都不是自己負責...
檢視ecshop廣告位對應的廣告詳細資訊
在ecshop的日常應用中,如果新增了很多廣告位和廣告。然而時間一長又不知道哪些廣告是有用的,哪些廣告是沒用的,廣告對應的鏈結是什麼。倘若人工乙個個檢視又特費時費力不討好。因而想想辦法用sql一次性查出來,一目了然。select ad.ad name,ad link,ad.ad code,ad.st...