1
我是Cassandra的新手,我开始设计一个简单的用户表进行帐户注册和登录。这很简单:在Cassandra中设计/使用用户表并创建帐户
行键:用户名;栏目:电子邮件,名称,密码,盐。
或者:
行键:uuid;列:用户名,电子邮件,名称,密码,盐。
对此结构简单,我有两个问题:
- 我需要的电子邮件(和用户名)查找索引。我可以使用辅助索引或手动创建索引。我应该选择第二个选项,因为电子邮件/用户名列的基数很高吗?显然,二级索引适用于低基数列。
- 更重要的是,我立即遇到了同时向表中插入密钥的问题 - 我需要进行先读后写,以确保用户名(或电子邮件)不在数据库中。有没有办法避免潜在的竞争条件(例如,两个用户同时注册相同的用户名/电子邮件)?还是使用其他关系数据库处理用户注册并将用户帐户详细信息复制到cassandra数据库以进行登录和其他用途的正确解决方案?