从 GUID 中删除破折号是个好主意吗?

发布于 2024-12-11 06:55:01 字数 223 浏览 0 评论 0原文

我有代码将 GUID 中的破折号替换为空字符串。

Replace(System.Guid.NewGuid.ToString, "-", "")

这会消除指南的唯一性吗?

有人也可以证实这一点吗?

我们将 GUID 作为 char(32) 存储在数据库中。可以吗?由于我们有不同时区的国际用户,我们担心字符长度可能会超过 32。谢谢。

I have code which replaces the dash with empty strings in a GUID.

Replace(System.Guid.NewGuid.ToString, "-", "")

Would that remove the uniqueness of the guid?

Also can someone confirm this too?

We are storing GUIDs in our database as char(32). Is that okay? Because we have international users in different timezone, we're concerned that the character length could go over 32. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

风吹短裙飘 2024-12-18 06:55:01

破折号总是在同一个地方,所以不会,它不会降低唯一性。

System.Guid.NewGuid().ToString("N");

将生成不带破折号的 GUID,如本文档中所示

The dashes are always in the same place, so no, it will not reduce the uniqueness.

System.Guid.NewGuid().ToString("N");

Will generate a GUID without dashes, as in this documentation

桃气十足 2024-12-18 06:55:01

是的,删除破折号就可以了。保证了指南的唯一性。

破折号仅用于提高可读性:Guid 在内部由 16 个字节组成。
您可以看到 Microsoft维基百科了解更多详细信息。
也看一下构造函数:

public Guid(int a, short b, short c, byte[] d);
public Guid(int a, short b, short c, byte d, 
            byte e, byte f, byte g, byte h, 
            byte i, byte
public Guid(uint a, ushort b, ushort c, byte d, 
            byte e, byte f, byte g, byte h, 
            byte i, byte j, byte k);

Yes, it is OK to remove the dashes. The uniqueness of the Guid is guaranteed.

Dashes are only for readability: internally the Guid is made of 16 bytes.
You can see Microsoft and Wikipedia for more details.
Take a look at constructors too:

public Guid(int a, short b, short c, byte[] d);
public Guid(int a, short b, short c, byte d, 
            byte e, byte f, byte g, byte h, 
            byte i, byte
public Guid(uint a, ushort b, ushort c, byte d, 
            byte e, byte f, byte g, byte h, 
            byte i, byte j, byte k);
一曲琵琶半遮面シ 2024-12-18 06:55:01

破折号不是指南本身的一部分。它们只是指南通用表示的一部分。因此删除不会改变 Guid 值本身。

The dashes are not part of the guid itself. They are just part of a common representation of guids. So the removal won't change the Guid value itself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文