标签: guid

获取MYSQL记录的合理随机密钥的最佳方法

我需要为表生成一个合理随机的唯一键.它应该类似于MYSQL的GUID.我尝试过UUID,但看起来只有前几个字符实际上是随机的 - 其余的每次插入时都是一样的.

基本上,即使您已经在列中具有一个已知值,也希望此关键字段很难猜测.

执行此操作的最佳方法是什么,以及如何设置字段数据类型以有效地存储值?

谢谢,史蒂夫

mysql sql security random guid

0
推荐指数
1
解决办法
1356
查看次数

使用匿名外键连接表

有关

与我的其他问题相关:

评论系统设计

数据设计

假设我有一个标签表:

tblTags
-------------
TagID (int)
Name (string)
Run Code Online (Sandbox Code Playgroud)

还有两个内容表:

tblBlogs
-------------
Anchor (GUID, Primary Key)
BlogTitle (string)
+ More custom fields

tblTutorials
-------------
Anchor (GUID, Primary Key)
TutorialTitle (string)
+ More custom fields
Run Code Online (Sandbox Code Playgroud)

还会有更多带有锚点的表格,它不仅仅是2.

然后将标签与上述实体相关联:

tblTagAnchors
-------------
TagID (int, Foreign Key)
Anchor (GUID, Foreign Key)
Run Code Online (Sandbox Code Playgroud)

我的问题是,一旦我建立了博客和教程与特定标签的关联,有没有办法编写一个查询来返回带有特定标签的博客或教程?无需对博客和教程进行单独查询?

主要用途是搜索,类似于(伪):

select from tblBlogs and tblTutorials where the GUID exists in tblTagAnchors where tagID = 5

for each record returned
    if record from Blog
        response.write("<a href=blogView.aspx?ID=" + recID)
    else if record …
Run Code Online (Sandbox Code Playgroud)

sql database-design guid foreign-keys foreign-key-relationship

0
推荐指数
1
解决办法
691
查看次数

将Guid转换为字符串

我正在创建一个应用程序,我想尝试使用GUID.我首先使用实体​​框架代码和LINQ,所以我认为最简单的方法是使用

string guid = Guid.NewGuid().ToString();
var acc = new v_Account();   
acc.v_AcctGuid = guid;
Run Code Online (Sandbox Code Playgroud)

然后将我的GUID存储为数据库中的类型字符串.这是一种不好的做法吗?GUID真的只是一个全局唯一的随机生成的字符串吗?

我很确定它会起作用,但我不想在未来遇到问题或通过这样做造成漏洞.

c# linq entity-framework guid ef-code-first

0
推荐指数
1
解决办法
1111
查看次数

生成简短的唯一标识符

我正在寻找一种算法,该算法生成适合于两者的标识符,例如URL中的外部使用以及具有以下要求的持久性:

  • ,像最大 8个字符
  • 网址友好,所以没有特殊字符
  • 人性化,例如没有像L/l,0/O这样的暧昧角色
  • 增量快速索引
  • 随机 防止猜测而不知道算法(会很好,但不重要)
  • 独特而无需检查数据库

我查看了各种解决方案,但我发现的所有解决方案都有一些重要的权衡.例如:

  • GUID:太长,不是增量
  • GUID base64编码:仍然太长,不是增量
  • GUID ascii85编码:短,不是增量,太多不合适的字符
  • GUID编码如base32,base36:短,但信息丢失
  • 梳子GUID:太长,但是增量
  • 所有其他基于随机的:需要检查数据库的唯一性
  • 基于时间:容易在群集或多线程环境中发生冲突

编辑:为什么这个被标记为偏离主题?这些要求描述了可以提供许多合法解决方案的特定问题.事实上,这里的一些解决方案非常好,我正在努力选择一个标记作为答案.

.net c# guid identifier uniqueidentifier

0
推荐指数
1
解决办法
2944
查看次数

用guid比较foreq到linq

我想将此方法中的foreach转换为linq表达式.我有2次尝试/捕获因为我不能总是指望在guid或guidToFind列表中传递的字符串是有效的guid字符串.

    public static bool IsGuidInList(List<string> guids, string guidToFind)
    {
        try
        {
            var guid = new Guid(guidToFind.Trim());
            foreach (var g in guids)
            {
                try
                {
                    var g2 = new Guid(g.Trim());
                    if (g2 == guid)
                        return true;
                }
                catch {} // swallow exception
            }
        }
        catch{} // swallow exception
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

c# linq foreach guid

0
推荐指数
2
解决办法
436
查看次数

需要此功能的详细说明

我正在研究一个函数,其主要目的是为应用程序的每个用户生成一个唯一的 ID,有人可以向我解释该函数的工作原理。

guid: function() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
      var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
      return v.toString(16);
    });
  },
Run Code Online (Sandbox Code Playgroud)

我需要解释replace(/[xy]/g){即这是什么意思},而不是什么(r&0x3|0x8)意思。

javascript algorithm guid

0
推荐指数
1
解决办法
635
查看次数

如何从整数值创建确定性唯一标识符(GUID)

注意:这不是关于数据库设计,也不是关于GUID的一般用法.这是关于在Microsoft SQL服务器上确定性地为测试数据创建这样的GUID.

我们正在将数据库从整数标识符迁移到uniqueidentifier数据类型.

出于测试目的,我们希望将测试数据集迁移到已知的GUID值,确定性地基于我们以前的整数值

UPDATE Unit
SET UnitGuid = NEWID(UnitId)
Run Code Online (Sandbox Code Playgroud)

显然这不会马上起作用.如何使用UnitId创建确定性GUID?

sql sql-server guid

0
推荐指数
2
解决办法
434
查看次数

按指南位置列表排序

我有以下内容:

var nodes = _nodeService.GetNodeChildren(id, nId);
var association = _nodeService.GetNodeOrder(id, nId);

var joinedNodes = nodes.Join(association,
    n => n.Id,
    a => a,
    (n, a) => new {nodes = n, association = a};

var enumerable = joinedNodes.ToList();
var orderedNodes = enumerable.OrderBy(x => x.association);

return orderedNodes.nodes;
Run Code Online (Sandbox Code Playgroud)

其中,节点是对象列表,关联是 GUID 列表。

问题是我没有按预期收到订单。

我需要根据 GUIDS 位置的顺序返回节点列表。

以下是部分测试代码

_ngOrder = new List<Guid>
{
    _nodeId2,
    _nodeId1,
    _nodeId4,
    _nodeId3,
}
_nodeClient.SetNodeOrder(_ngOrder);
Run Code Online (Sandbox Code Playgroud)

当我得到方法并断言这里是代码:

Assert.That(_response[0].Id, Is.EqualTo(_node2Id);
Assert.That(_response[1].Id, Is.EqualTo(_node1Id);
Assert.That(_response[2].Id, Is.EqualTo(_node4Id);
Assert.That(_response[3].Id, Is.EqualTo(_node3Id);
Run Code Online (Sandbox Code Playgroud)

c# linq guid cassandra .net-standard-2.0

0
推荐指数
1
解决办法
941
查看次数

在 Visual Studio 中生成普通 GUID

创建 GUID 框

如果我尝试使用“工具”>“创建 GUID”来使用“创建 GUID”工具,我会得到一个包含六个不同片段的框,其中包含 GUID。但它不提供仅提供 GUID 的选项。有没有办法做到这一点?

我使用的是 Visual Studio Professional 2019 版本 16.1.6 和 .NET 版本 4.8.03761。

.net guid visual-studio visual-studio-2019

0
推荐指数
3
解决办法
2773
查看次数

如何从C#或T-Sql中的给定GUID生成新的GUID?

我想复制一个sqlserver表行并插入到这个表self中,这个表有这个字段:

Id :uniqueidentifier
ParentId: uniqueidentifier
Name: varchar(50)
Sort: float
UserId: uniqueidentifier
Run Code Online (Sandbox Code Playgroud)

Id和ParentId现有关系.

我提出了一个解决方案:

Insert into table1 (Id, ParentId,Name,Sort)
Select dbo.gen(id,1) as id, dbo.gen(ParentId,1) as ParentId ,Name,Sort from table1 
where UserId='XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
Run Code Online (Sandbox Code Playgroud)

gen函数是从给定GUID生成新GUID的方法

follow是一个C#描述,我们可以在CLR SQL Server用户定义函数中使用:

public Guid GenerateNewGuid(Guid from,int seed)
{
    return .....
}
Run Code Online (Sandbox Code Playgroud)

请帮我,我该如何实现这个功能?

如果您对我的情况有其他解决方案,请告诉我

问候.

吉姆

c# sql guid uniqueidentifier

-1
推荐指数
1
解决办法
1315
查看次数