gpt4 book ai didi

asp.net - 在代码中生成唯一的数据库 ID

转载 作者:搜寻专家 更新时间:2023-10-30 20:46:27 24 4
gpt4 key购买 nike

一个要求是,在将我的 C# 对象持久化到数据库时,我必须在代码中确定数据库 ID(代理主键)。

第二个要求是 key 的数据库类型必须是 int 或 char(x)... 所以没有 uniqueidentifier 或 binary(16) 等。

这些是不可更改的要求。

处理此问题的最佳方法是什么?

一个想法是 base64 编码的 GUID,看起来像“XSiZtdXcKU68QWe7N96Dig”。这些很容易在代码中创建,如有必要,我可以在 URL 中接受。但是将所有主键和外键都设为 char(22) 在性能(索引、大小)方面会不会太昂贵?副手我真的很喜欢这个想法。

另一个想法是创建一个数据库序列的代码版本,为我创建递增的整数。但我不知道这是否合理,需要一些指导来确保可靠性。定序器必须知道它已经走了多远,以及我无法控制的线程怎么办等。

我想所涉及的表不会超过 1.000.000 行......可能会少得多。

最佳答案

您可以有一个名为“sequences”的表。对于每个表,都会有一行带有一个计数器。然后,当您需要另一个数字时,从计数器表中获取它并递增它。放在一个交易中,你就会有唯一性。

当然,这会影响性能。

关于asp.net - 在代码中生成唯一的数据库 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1243731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com