我正在使用Codeigniter
+ MySQL
+ Active Record
構建項目。在數據庫中添加序列號,每年重置
在我MySQL
分貝我有一個名爲表請求與列協議,年並在那裏我存儲的請求的一般信息,一些列(如標題,主題等),沒有什麼特別的提及。
協議和年份是TYPE INT
,必須像下面那樣自動生成。
每年在01/01/XXXX-00:00:00
的字段必須重置爲1號(01/01/XXXX
後保存的第一個請求,必須有協議1的值),併爲即將到來的請求,增加1它按順序,直到明年等。
要重置協議,我會在後面的階段添加一個cron,我會重新設置一個技巧。仍然不知道如何。
我現在需要做什麼:
每當我添加一個新的request
,新行的必須增加1
僞代碼:
new_protocol = previous_protocol + 1
我在做什麼到目前爲止
我在我的模型中插入一個新的請求,但到目前爲止我沒有做任何關於協議號的功能,我通過我的表單手動輸入。
public function addRequest($request) {
$this->db->insert('requests', $request);
if ($this->db->affected_rows() == 1)
return $this->db->insert_id();
return FALSE;
}
什麼是最有效的方法來實現這一目標?
- 我應該在控制器中找到最後一個協議號 - >添加1 - >發送給模型添加?
- 我應該在模型中找到最後和最大的數字 - >添加1 - >插入數據庫?
- 還有別的嗎?
任何想法將不勝感激。
聽起來極像是你可能會得太多這兒的東西。這可能會變得相當混亂,特別是考慮到閏年的時候,所以你需要問自己兩個問題。你爲什麼需要這個,真的值得嗎? – GordonM
這就是協議的工作方式(我住的地方)。 – GeorgeGeorgitsis
至於如何實際做到這一點,我只需創建一個DATE列,存儲當前日期,然後使用%j從DATE_FORMAT中獲取1-366年的一天 – GordonM