我尝试添加库/图层以使用Firestore,它将以处理外键约束的方式生成创建/更新/删除操作的正确代码。用户可以指定这样的模式:
struct Game {
players: List<Player>;
regions: List<Region>;
}
struct Player {
occupiedBases: List<&Base>; // & means a foreign reference, this base *must* exist.
}
struct Region {
bases: List<Base>;
}
struct Base {
position: Vec2;
}
&amp; amp;是:
换句话说,它是一个外键约束。
我对如何做到这一点有一个粗略的想法:
然而,没有&#34;原子地增加&#34;。为此,我需要交易。但是,如果我有事务,那么修改__refCount的一个人将在每个其他事务中导致失败/重试,修改相同的__refCount。换句话说,__ refCount现在是一个热点。如果很多&amp;引用引用相同的节点,这将导致一些大规模的减速,因为它们都读取/写入相同的整数。
当我进一步深入这个兔子洞时,我想,这必须存在,有人必须已经这样做了。是否有一种确定的好方法来做这样的外键约束?