Php 条令ORM:使用票证服务器生成主ID的最佳方法?

Php 条令ORM:使用票证服务器生成主ID的最佳方法?,php,database,doctrine,sharding,doctrine-1.2,Php,Database,Doctrine,Sharding,Doctrine 1.2,我正在创建一个集中式票证服务器,用于分发唯一的32位INT ID。我有一个可以在我的应用程序中调用的函数,它接受实体/表的参数,例如getPrimaryKey(“用户”)。我通过这篇博客文章从Flickr得到了这个想法: 我们最终将在多个MySQL数据库中共享数据,我希望将这段代码作为概念证明安装并运行 我的问题是,在条令中使用此功能的最佳方法是什么?显然,使用上面的票证服务器,我需要指定我的条令模型都不包含自动递增的主键 在将新记录插入数据库之前,我是否可以扩展一种使用getPrimaryK

我正在创建一个集中式票证服务器,用于分发唯一的32位INT ID。我有一个可以在我的应用程序中调用的函数,它接受实体/表的参数,例如getPrimaryKey(“用户”)。我通过这篇博客文章从Flickr得到了这个想法:

我们最终将在多个MySQL数据库中共享数据,我希望将这段代码作为概念证明安装并运行

我的问题是,在条令中使用此功能的最佳方法是什么?显然,使用上面的票证服务器,我需要指定我的条令模型都不包含自动递增的主键

在将新记录插入数据库之前,我是否可以扩展一种使用getPrimaryKey方法检索主键的方法?如果不是,我应该从我的应用程序中的另一个地方处理这个问题吗

理想情况下,我希望在使用条令关系时使用上述方法生成ID,例如:

$user = new User():  
$user->name = 'Bob';  
$user->Phonenumbers[]->number = '555-5555';  
$user->save();  
此外,该场景的另一方面是从特定的碎片中选择数据。我目前的想法是维护每个碎片上包含的关键范围的主列表,如下所示(忽略每个碎片上的少量行):

切分用户id 1-1000
分片B用户id 1001-2000
分片C用户id 2001-3000

然后我可以调用诸如getShard($table_name,$primary_key)之类的东西来获取碎片,并可能将我的条令连接切换到特定的碎片。特定用户/实体的相关数据很可能驻留在同一个碎片上,因此我不太担心跨越多个碎片的关系。尽管如此,这可能是一种可能性,因此对此问题的任何指导都将不胜感激