相关疑难解决方法(0)

什么是Hi/Lo算法?

什么是Hi/Lo算法?

我在NHibernate文档中找到了这个(它是生成唯一键的一种方法,第5.1.4.2节),但我没有找到它如何工作的很好的解释.

我知道Nhibernate处理它,我不需要知道内部,但我只是好奇.

database algorithm nhibernate hibernate hilo

454
推荐指数
4
解决办法
9万
查看次数

Sequential Guid相对于标准Guid的性能提升有哪些?

当在数据库中用作主键时,有人曾测量过Sequential Guid与Standard Guid的性能吗?

database guid primary-key

65
推荐指数
5
解决办法
3万
查看次数

使用URI的md5哈希作为数据库中的主键的优缺点

我正在构建一个数据库,该数据库将存储一系列对象(例如科学论文,标本,DNA序列等)的信息,这些对象都在线存在并且可以通过URL或诸如DOI的标识符来识别.使用这些GUID作为对象的主键似乎是一个合理的想法,我跟随美味Connotea使用GUID的md5哈希.如果将鼠标悬停在美味或Connotea书签上的编辑或删除按钮上,您将在浏览器状态栏中看到md5哈希值.例如,http:// stackoverflow /的书签是

http://delicious.com/url/e4a42d992025b928a586b8bdc36ad38d
Run Code Online (Sandbox Code Playgroud)

其中e4a42d992025b928a586b8bdc36ad38d是http:// stackoverflow /的md5哈希值.

有没有人对这种方法的利弊有看法?

对我来说,这种方法的优势(与使用由数据库本身生成的自动递增主键相反)是我必须在对象之间进行大量链接,并且通过使用md5哈希,我可以将这些链接外部存储在文件中(比如,作为数据挖掘/抓取的结果),然后将它们批量导入数据库.同样,如果必须从头开始重建数据库,则对象的URL不会更改,因为它们使用md5哈希.

我会欢迎任何关于这听起来是否明智的想法,或者是否还有其他(更好的?)方法.

database uri md5 guid primary-key

24
推荐指数
3
解决办法
2万
查看次数

如何使用 UnitOfWork 模式从 Add 中获取 id?

我正在使用 UnitOfWork 模式来抽象我的 Asp.Net 应用程序中的数据库访问。基本上我遵循此处描述的 UnitOfWork 模式方法:

https://chsakell.com/2015/02/15/asp-net-mvc-solution-architecture-best-practices/

但是,我很难理解,我将如何获得新添加项目的 ID。就像我想向我的客户存储库添加新客户一样,我将如何获得客户 ID?问题是Add和Commit是解耦的,直到Commit之后才知道Id。

有没有办法使用 UnitOfWork 模式获取添加项的 id?

c# asp.net asp.net-mvc entity-framework unit-of-work

7
推荐指数
1
解决办法
6567
查看次数

为什么最好使用UUID来存储唯一的id值?

为什么最好使用UUID来存储唯一的id值?有什么好处?

uuid

6
推荐指数
1
解决办法
903
查看次数

Django 加密 url 中的主键

我环顾四周,但仍然对如何安全地加密 django 应用程序的 url 中的主 ID 感到不舒服。

我的网址如下:

http://www.example.com/primary1_id/primary2_id/testing/
Run Code Online (Sandbox Code Playgroud)

例如:

http://www.example.com/3/7/testing/
Run Code Online (Sandbox Code Playgroud)

我想向用户显示上述网址,如下所示:

http://www.example.com/623477897ghfjs23879/7829yfgweh/testing/ #encrypted key instead of primary id
Run Code Online (Sandbox Code Playgroud)

在我看来,我应该能够从加密密钥中解码回primary1_id和primary2_id

请我需要一些关于如何以最佳方式处理它的指导

提前致谢!

python django primary-key django-urls

6
推荐指数
1
解决办法
7707
查看次数

您何时使用GUID作为主键?

可能重复:
GUID/UUID数据库密钥的优缺点

在任何情况下,必须将GUID用作SQL Server 2005/8数据库中的主键.例如,使用MS Sync Framework强制执行此操作还是数据复制?

sql-server uuid guid primary-key microsoft-sync-framework

4
推荐指数
1
解决办法
4711
查看次数

生成的顺序GUID有时不是顺序的

我有一个C#应用程序,它为我插入表中的每一行生成一个顺序GUID.我希望插入的GUID是顺序的,但有时它们会破坏序列(以块为单位).

例:

按顺序打破

这些GUID按插入顺序显示.

为什么这些"顺序"GUID是在如此大的序列中断的情况下创建的?


用于生成顺序GUID的代码:

class NativeMethods
{
    [DllImport("rpcrt4.dll", SetLastError = true)]
    public static extern int UuidCreateSequential(out Guid guid);
}

public static Guid CreateSequentialGuid()
    {
        const int RPC_S_OK = 0;

        Guid guid;
        int result = NativeMethods.UuidCreateSequential(out guid);
        if (result == RPC_S_OK)
            return guid;
        else
            return Guid.NewGuid(); //<--In debugging, this statement never runs.
    }
Run Code Online (Sandbox Code Playgroud)

循环中使用的代码,用于将新GUID和信息插入表中:

Guid mySequentialGUID = CreateSequentialGuid();
string[] row = { item1,
                 item2,
                 item3,  
                 sourceText,
                 encoding.ToString(),
                 mySequentialGUID.ToString()
             };
var listViewItem = new ListViewItem(row);
myListView.Items.Add(listViewItem);
Run Code Online (Sandbox Code Playgroud)

编辑:请参阅此问题以了解顺序GUID:

c# guid newsequentialid sequential

3
推荐指数
1
解决办法
1155
查看次数

为实体生成不可预测的随机@Id

我有以下代码。因为该@Id值是在my中顺序生成的MariaDB,所以这是不安全的:我需要在客户端中公开它。这就是为什么我想要一个不可预测的random @Id。我应该如何更改代码?

@Entity
public class Item implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id; // Automatic generated value

    // other fields, getters, setters & constructors
}
Run Code Online (Sandbox Code Playgroud)

java hibernate spring-data

3
推荐指数
2
解决办法
3994
查看次数

外键的 UUID

为什么 UUID 用作主键?它们需要大量内存来存储。根据我的理解,它们被用作主键,因为每个生成的值都是唯一的,这在合并 2 个数据库时很有帮助,因为不会发生冲突。

如果 UUID 用于 API 端点猜测的隐私,为什么不改为拥有、ID、数据库编号。然后使用它作为主键对它们进行哈希处理?然后就可以用这个ID来建立关系了,很方便。ID 和数据库号的哈希值。可以用于primary_key,使用ID查找数据条目也比UUID快。

mysql sql database

2
推荐指数
1
解决办法
2350
查看次数