Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库自动编号或自定义编号_Php - Fatal编程技术网

Php 数据库自动编号或自定义编号

Php 数据库自动编号或自定义编号,php,Php,我的PHP应用程序管理“事件”。我有一个类将所有需要的事件属性定义为私有var成员。每个var成员都通过setter执行验证,因此事件中的每个值都是有效的。最后,我有一个工厂方法,使用这些setter创建事件的新实例。该方法执行额外的验证,确保在创建类的新实例时,所有必需的属性都存在 我的问题来了 每个事件都必须有一个id。该id是在插入事件时由数据库创建的,因此,在创建事件但尚未插入的时刻,没有id。因为我在factory方法中拥有所有验证,所以我不想在其他方法中复制该代码,只是为了创建要插入

我的PHP应用程序管理“事件”。我有一个类将所有需要的事件属性定义为私有var成员。每个var成员都通过setter执行验证,因此事件中的每个值都是有效的。最后,我有一个工厂方法,使用这些setter创建事件的新实例。该方法执行额外的验证,确保在创建类的新实例时,所有必需的属性都存在

我的问题来了

每个事件都必须有一个id。该id是在插入事件时由数据库创建的,因此,在创建事件但尚未插入的时刻,没有id。因为我在factory方法中拥有所有验证,所以我不想在其他方法中复制该代码,只是为了创建要插入数据库中的临时事件

做事情的标准/逻辑/等等是什么

  • 管理我自己的事件编号,以便在将事件插入数据库之前拥有一个? 既然数据库能为我做得这么好,为什么还要为事件制作一个编号系统呢

  • 对于尚未插入数据库的事件,是否有不同的工厂方法,以允许无id事件? 为什么要使程序逻辑复杂化,根据其在数据库中的状态设置属性as required/notRequired


注意:对不起,我无法为这个问题选择合适的标签。

如果您可以在没有预定义id-s的情况下进行选择,请尝试这种方式。 另一方面,我猜,您正在使用一个表,其中id由一个自动递增值设置。
您可以从数据库中选择该值,然后事件id将是从数据库中读取该值的自动增量id+1。在这里等待更多的选择。