我正在使用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