我使用MongoDB的,我想生成博客文章独特的cryptical标识(将在宁静的网址都必须使用),如s52ruf6wst或xR2ru286zjI.
您认为什么是最好的,以及生成这些ID的更具可扩展性的方式?
我在考虑以下架构:
WDYT?
Jus*_*ins 32
这正是MongoDB的开发人员以他们的方式构建他们的ObjectID(_id)的原因...... 在节点之间进行扩展等.
BSON ObjectID是一个12字节的值,由4字节时间戳(自纪元以来的秒数),3字节机器ID,2字节进程ID和3字节计数器组成.请注意,与BSON的其余部分不同,时间戳和计数器字段必须以big endian存储.这是因为它们是逐字节比较的,我们希望确保大多增加订单.这是架构:
0123 456 78 91011
time machine pid inc
Run Code Online (Sandbox Code Playgroud)
传统数据库通常使用单调递增的主键序列号.在MongoDB中,首选方法是使用对象ID.对象ID与分片和分发更具协同性.
http://www.mongodb.org/display/DOCS/Object+IDs
所以我要说只使用ObjectID
转换为字符串时它们并没有那么糟糕(这些是在彼此之后插入的)......
例如:
4d128b6ea794fc13a8000001
4d128e88a794fc13a8000002
Run Code Online (Sandbox Code Playgroud)
他们乍一看是"可猜测的",但他们真的不容易猜到......
4d128 b6e a794fc13a8000001
4d128 e88 a794fc13a8000002
Run Code Online (Sandbox Code Playgroud)
对于一个博客,我不认为这是一个很大的交易......我们在整个地方都使用它.
| 归档时间: |
|
| 查看次数: |
16138 次 |
| 最近记录: |