2013-04-22 51 views
0

如果我不想让用户可以创建的继续ID(从那时起他可以看到之前创建了多少个),是否可以更改创建这些密钥的蛋糕策略?配置创建ID的策略

我只是不希望用户知道“成功”或不是项目是如何。

+0

你可以使用UUIds。 Cake本身就支持这些。这些都是随机的36个字符串,这些字符串非常有效地隐藏了计数。 – mark 2013-04-22 08:52:17

+0

参见[uuid v4 generation](http://stackoverflow.com/questions/2040240/php-function-to-generate-v4-uuid/15875555#15875555)。 – 2013-04-22 08:58:46

回答

1

的UUID是天然地由滤饼支持的可能的方式http://book.cakephp.org/2.0/en/getting-started/cakephp-conventions.html#model-and-database-conventions

主键char36字段将自动使用那些的UUID。

优点:

  • 顺序不一定是正确的了:在整个应用程序
  • 斗篷非常有效计数(你的主要目标)

缺点

  • 独特性(依赖于创建?),特别是批量导入和多个创建的日期。
  • 需要更多的空间并且让你的查询更慢。

例子:

5168a56a-f708-41b3-81ee-2f7152b0caef 
... 

另一种方法是使用蛞蝓为您的用户创建的内容始终是指,只有他们的蛞蝓(从未ID)。这样,自动增加的主键仍然可以用于内部查找和连接等,但前端永远不会真正看到id,因为slug是主查找字段。不过,不要忘了索引这个slug字段,因为字符串查找比比较快。