GUID vs随机字符串作为标识符

时间:2013-02-27 21:24:47

标签: asp.net sql-server uniqueidentifier

我有一个表,我希望在我的代码中可以引用的数据库实例中具有相同的唯一标识符。该表不太可能具有> 500行。使用GUID和使用由LEFT(NEWID(),6)填充的NVARCHAR(6)作为标识符之间是否存在差异;当然假设该字段被标记为PK并且是唯一的。

ID将用于自定义控件,我认为:

<cc1:mycontrol id="test" runat="server" code="71E29D" />

比以下内容更具可读性且更易于使用:

<cc1:mycontrol id="test" runat="server" code="71E29D4C-A00A-4F1A-9785-08D030A9B764" />

3 个答案:

答案 0 :(得分:3)

了解不同的GUID生成方案。在某些情况下,许多字节不是随机的,而是基于MAC地址和其他类似的系统内容。这可能意味着你的前6个字符将始终相同......

答案 1 :(得分:2)

GUID实际上不应该是可读的。它们用于确保ID的唯一性。如果您仅使用GUID的一部分,则无法保证它是唯一的。考虑有一对,我有一个GUID作为我的rowId,然后第二列是一个可读的值。

答案 2 :(得分:2)

通过截断GUID,您最终可能会重复。只需使用GUID即可。 (或提出另一种更短的唯一身份证方案)