我如何制作 "composite key" (这甚至叫什么)?

How do I make a "composite key" (and what is this even called)?

我有两个键字符串,代表两个不同类对象的两个对象。这些键在 类 中是唯一的。我需要创建一个代表这两个键组合的唯一键。我该怎么做?

我不能只是将它们连接起来,因为任何字符都可以出现在基本键中。我可以在连接之前转义连接定界符吗?我可以创建两个密钥的散列,但这感觉很重。

是否有内置函数可以帮助我做到这一点?这是"called something"吗?这似乎是一个常见(已解决)的问题。

(我在 Javascript 中专门寻找这个,但我也对更高级别的解决方案或框架感到好奇)

创建第三种类型的对象,它有自己的键(或没有,键是可选的)以跟踪所有组合。如果您正在动态创建这些条目,您可能需要一些东西来检查并强制执行值的唯一性。

我通常称其为人行横道 table 或链接 table。

涵盖该主题的维基页面将其称为关联实体 Wikipedia - Associative entity

简单地连接两个字符串,但在第一个字符串前加上它的长度和一个分隔符。例如,如果输入字符串为 "cat""doorbell",则输出字符串将为 "3:catdoorbell"。另一方面,如果输入是 "catdoor""bell",输出将是 "7:catdoorbell"

使用此方法,输出是唯一的,并且可以从输出字符串中恢复原始密钥。