我无法弄清楚如何为我的在线选举应用程序创建唯一的键名。这是一组典型的相关实体:
- 1 选举
- 5名候选人
- 100,000 名选民
- 最多 100,000 票
出于此处所述的原因,我需要为每个 Voter 实体设置一个唯一的键名。电子邮件地址对于特定选举中的选民来说是唯一的,但不一定跨多次选举(因为同一选民可能是多次选举的一部分)。
如果选举是选民实体的父实体,那么将选民电子邮件与选举父实体结合使用就足以获得唯一密钥。由于我需要在更新 Voter 实体时使用事务(以确保选民不能多次投票),我想我不想使用实体组,因为根据docs一次只能更新一个 Voter 。
另一种解决方案可能是为表单的每个选民创建一个唯一的密钥:
E<election ID>_<voter email>
例如,
E1001_john@example.com
这是为每个 Voter 实体创建唯一键名的合理方法吗?