问题标签 [primary-key-design]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - RandomStringUtils.randomAlphanumeric(30) 是有效的 GUID 策略吗?
我需要一个随机字符串生成器,它生成一个字母数字字符串,用作30 个字符或更少字符的分布式系统中的唯一键。它不能包含任何特殊字符。
RandomStringUtils #randomAlphanumeric会为此工作吗?
底层实现使用java.util.Random
.
唯一键的集合可能少于 1000 亿个,并且系统需要能够每秒处理多达 1000 条记录。
我如何证明该策略具有足够低的冲突概率以用作主键生成器?
asp.net-mvc - ASP MVC code first create computed primary key
I am using code first
in asp mvc
and i came across a situation where i need to have a model/table with a computed primary key for example:
So is there a way to make the StudentNumber
to be computed by for example taking 1st letter of the LastName
, the year of registration and an autoincrement
number?
database - PK 生成性能:DB 生成的序列或应用程序生成的随机
我试图了解数据库是否更高效地管理 id/sequence 生成以用作 PK 或让应用程序简单地生成它自己的 ID,例如随机的 64 位数字。
我的怀疑是应用程序 + 随机生成会更高效,因为要管理的并发性更少,但话又说回来,如果数据库生成一个序列,那么它总是知道接下来的内容是有序的,并且可以优化索引维护。
postgresql - 重启主键
这是我的情况:
我有一个每周被截断一次的表,并在其中放置新值。
我想做的事:
我想添加一个从 1 开始并为插入的表中的每一行增加 1 的主键。当表被截断时,我希望这个计数从 1 开始。
这可能吗?
mysql - 每周表的正确结构和索引
我需要一个表格来为每个用户每周存储文本。
所以我想到了两种选择:
1)使用复合主键:
2)使用自增主键
我不知道什么是更好的选择(以及为什么)
database - SQL表中主键的选择
我想制作一个 SQL 表来跟踪添加/编辑/删除的注释。我希望能够NOTEID
在表格中显示每个人此时的状态,显示所选笔记的更改日志,并能够删除所有标记为给定的笔记NOTEID
。
制作这张桌子的自然方法是什么?我应该自动生成主 ID 还是应该使用 ( NOTEID
, TIMEMODIFIED
) 作为主键?应该添加什么样的防呆保护?
我希望能够在“笔记历史记录”窗口中显示所有笔记。所以,我应该存储 3 天前创建的笔记,2 天前的笔记和今天修改的笔记。
但是,“Notes”表将显示每个 NOTEID 的最终状态。那是
sql - 用户 ID 主键长度
我正在设计一个包含多个表(如用户、内容等)的数据库。我想为表中的每一行分配 id。
那么为每个表中的每一行生成唯一 id 的标准是什么。我应该在自动增量模式下设置 id 吗?
types - 对于 Cassandra 中特定长度的位,我们需要使用什么类型的主键?
我想知道在哪些情况下我需要使用哪种类型的主键。
情况:
1. 如果我需要 64 位密钥,那么 bigint 是否最适合?如果我将选择文本类型,如果我将放置不超过 64 位的密钥,性能会相同吗?
2. 如果我需要一个大于 64 位且小于 128 位(比如说 80 位)的主键,那么我必须使用哪种数据类型作为主键?
ms-access - 主键的自动编号与文本字符串?
我正在尝试为我刚刚遇到的问题找到最佳解决方案。我讨厌在不理解的情况下做事,所以我希望有人能提供帮助。
我有一个 Access 数据库,其中包含一个存储酒店信息的表 - 然后是另一个存储行程的表。行程表将从酒店表上的酒店列表中进行选择。
我想建立一个正确的关系,但是在连接到 Itineraries 表的 Hotels 字段的 Hotels 表上使用自动编号主键将不起作用。(因为自动编号 ID 与酒店名称不匹配。)
是否更好:
A. 使用酒店名称作为酒店表上的主键,即使字符串长度可能会变得很长?
B. 将 Itineraries 表的 Hotels 字段上的显示控件更改为一个组合框,该组合框列出了 Hotels 表的自动编号主键 - 但将其隐藏。相反,它显示带有酒店名称的列。我在这里找到了解决方案:http ://www.trigonblue.com/accesslookup.htm
这两种解决方案似乎都不完美,因为我认为解决方案 A 可能会使用长文本字符串减慢索引速度,如果在表中插入新字段,解决方案 B 会变得混乱。
我不想在这里选择错误的答案并在路上遇到问题。
有谁可以帮我离开这里吗?如果我需要澄清我的问题的任何部分,请告诉我。
谢谢!
amazon-web-services - 单个分区键值的 DynamoDB 最大分区大小是否为 10GB?
我已经阅读了很多关于设计分区键和排序键的 DynamoDB 文档,但我认为我一定遗漏了一些基本的东西。
如果您的分区键设计错误,当 SINGLE 分区键值的数据超过 10GB 时会发生什么?
“了解分区行为”部分指出:
“一个分区可以容纳大约 10 GB 的数据”
它如何对单个分区键进行分区?
文档还讨论了本地二级索引限制为 10GB 数据的限制,之后您开始出现错误。
“任何项目集合的最大大小为 10 GB。此限制不适用于没有本地二级索引的表;只有具有一个或多个本地二级索引的表才会受到影响。”
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LSI.html#LSI.ItemCollections
我能理解。如果单个分区键超过 10GB,它是否还有其他的魔法来分区数据。还是它只是继续扩大该分区?这对您的关键设计有何影响?
问题的背景是,我已经看到很多在多租户环境中使用诸如 TenantId 作为分区键的示例。但是,如果特定的 TenantId 可以拥有超过 10 GB 的数据,这似乎会受到限制。
我肯定错过了什么?