2

我们的模式有一个 USER 表...

USER( 
   userId,
   firstname,
   lastname,
   email)

我们希望确保所有用户都有唯一的电子邮件地址。是否可以在 VoltDB 中创建唯一索引来强制执行此约束?

4

2 回答 2

3

VoltDB 支持主键索引(始终是唯一的)以及可以定义为唯一的二级索引。

对于您的特定表,您有两种选择来强制电子邮件列的唯一性:

  1. 将 USER 表定义为已复制。
  2. 在电子邮件列上对 USER 表进行分区。

如果您在电子邮件上创建唯一索引并在 userId 上对表进行分区,则电子邮件列的唯一性强制将在各个分区内。

于 2011-08-05T14:27:29.467 回答
1

VoltDB 为主键提供隐式索引。例如,如果您将 userID 分配为主键,则 userID 将是唯一的(因为 VoltDB 对主键的隐式索引分配)但是要使电子邮件列唯一,您必须在电子邮件列上显式分配约束“唯一”。类似地,假设您正在对表进行分区并且对列 userID 进行分区,然后为了强制电子邮件在每个分区中是唯一的,您应该在电子邮件列上显式分配“ASSUMEUNIQUE”约束。

于 2016-08-23T08:41:59.523 回答