我怎样才能在Python中创建独特的URL http://imgur.com/gM19g或http://tumblr.com/xzh3bi25y 当使用python中的uuid时,我会得到一个非常大的URL .我想要更短的URL.
在向表中添加新项时,是否可以让DynamoDB自动生成唯一ID?
我注意到Java API提到@DynamoDBAutoGeneratedKey所以我假设有一种方法可以使用PHP.
如果是这样,应用程序代码是否会生成这些ID,还是在DynamoDB端完成?
我期待将boost :: uuid转换为const char*.转换的正确语法是什么?
我的应用需要与其他应用用户同步(在自己的设备上).我还想支持离线编辑,当用户连接到互联网时,这些编辑会与其他协作用户同步.
因此,用户A改变(当他离线时)一些数据(换句话说,他将更新数据库条目)或向数据库添加新记录.当用户A连接到互联网时,所有更改和新记录都将传递给其他协作用户.因此,用户B将获得更改/更新,并可以将其插入/更新到用户B本地设备数据库中.
但我需要确保数据库条目的ID在整个系统中是唯一的.因此我需要使用像UUID这样的东西.
我的问题:在android sqlite数据库表中使用UUID(String/Varchar)作为主键而不是自动递增的整数是不是一个坏主意?
我想通过使用字符串(UUID有36个字符)作为主键会出现性能问题.
我想索引uuids而不是整数需要更长的时间(比较字符串与比较整数).我还猜测,当我使用UUID时,每次插入新的数据库记录/条目时,数据库都需要重新索引主键列,因为它们的主键索引不再处于排序顺序(这将是我何时使用整数自动递增主键,因为每个未来的记录都会在末尾添加,因为新的自动递增的主键始终是目前为止最大的数字,因此索引将自动按排序顺序排列).我还需要做的是加入2到3张桌子.我还猜测,比较JOINS上的字符串而不是整数会减慢数据库查询的速度.
但是我无法看到实现这种协作同步系统的任何其他可能性,所以我必须使用UUID,对吧?
另一种可能性是使用整数自动增量主键并使用第二列uuid.因此,为了处理用户本地设备,我将使用此主键(整数)进行JOINS等,而我将使用uuid列与其他用户进行同步.
你们对这种方法有什么看法,或者你认为有多少工作,因为你不会期望UUID直接作为主键出现重大的性能问题?
还有其他建议吗?
我需要从Python生成唯一的64位整数.我已经检查了UUID模块.但它生成的UUID是128位整数.所以那不行.
你知道在Python中生成64位唯一整数的方法吗?谢谢.
我是Android的学徒.我需要随机创建UUID并将其作为主键存储到数据库中.我在Button click事件中使用UUID.randomUUID.toString()这段代码.UUID实际上非常有趣.然而,如果我再次单击该按钮,我需要制作另一个UUID.无论如何,我的代码没有制作新的UUID.有人,当我点击catch时,请帮我制作一个不规则的UUID.
这是我的代码:
String uniqueId = null;
showRandomId = (Button)findViewById(R.id.showUUID);
showRandomId.setOnClickListener(new View.OnClickListener() {
public void OnClick(View v) {
if(uniqueId == null) {
uniqueId = UUID.randomUUID().toString();
}
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(getBaseContext(), uniqueId, duration);
toast.show();
}
});
Run Code Online (Sandbox Code Playgroud) Python模块的uuid4()函数uuid生成一个随机UUID,并且似乎每次生成一个不同的UUID:
In [1]: import uuid
In [2]: uuid.uuid4()
Out[2]: UUID('f6c9ad6c-eea0-4049-a7c5-56253bc3e9c0')
In [3]: uuid.uuid4()
Out[3]: UUID('2fc1b6f9-9052-4564-9be0-777e790af58f')
Run Code Online (Sandbox Code Playgroud)
我希望每次运行脚本时都能生成相同的随机UUID - 也就是说,我想将随机生成器播种到uuid4().有没有办法做到这一点?(或通过其他方式实现这一点)?
我将使用uuid.UUID()带有随机128位整数(来自种子实例random.Random())的方法生成UUID 作为输入:
import uuid
import random
rd = random.Random()
rd.seed(0)
uuid.UUID(rd.getrandbits(128))
Run Code Online (Sandbox Code Playgroud)
但是,UUID()似乎不接受这个作为输入:
Traceback (most recent call last):
File "uuid_gen_seed.py", line 6, in <module>
uuid.UUID(rd.getrandbits(128))
File "/usr/lib/python2.7/uuid.py", line 133, in __init__
hex = hex.replace('urn:', '').replace('uuid:', '')
AttributeError: 'long' object has no attribute 'replace'
Run Code Online (Sandbox Code Playgroud)
还有其他建议吗?
我尝试uuid在Node/Typescript应用程序中创建一个(v 3.0.1)包,但我不确定应该导入什么以及如何使用它.
这是index.d.ts(从@types/uuid2.0.29开始):
declare namespace uuid {
interface V1Options {
node?: number[];
clockseq?: number;
msecs?: number | Date;
nsecs?: number;
}
type V4Options = { random: number[] } | { rng: () => number[]; }
interface UuidStatic {
(options?: V4Options): string;
(options: V4Options | null, buffer: number[], offset?: number): number[];
(options: V4Options | null, buffer: Buffer, offset?: number): Buffer;
v1(options?: V1Options): string;
v1(options: V1Options | null, buffer: number[], offset?: number): number[];
v1(options: V1Options | …Run Code Online (Sandbox Code Playgroud) java.util.UUID.randomUUID().toString()长度总是等于36吗?
我无法找到相关信息.这里只说以下内容:
public static UUID randomUUID()静态工厂,用于检索类型4(伪随机生成的)UUID.使用加密强伪随机数生成器生成UUID.返回:随机生成的UUID
这没type 4告诉我什么.我不知道在这种情况下4型是什么意思.
我想在我的protobuf用户消息示例中将UUID附加到字段.
message User {
// field containing id as UUID type
required string email;
optional string name;
}
Run Code Online (Sandbox Code Playgroud)
我知道protobuf消息还不支持UUID类型.我已经读过,最好的方法是使用UUID消息类型.
所以我猜我的用户消息将导入我的UUID消息原型定义并将其用作字段类型,如下所示:
import "myproject/UUID.proto";
message User {
required UUID id;
required string email;
optional string name;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,UUID消息将如何显示,以及如何对其进行编码/解码?我的目标是Java/Scala和C#兼容性.