• Azure CosmosDB (9) Unique Key Constraints


      《Windows Azure Platform 系列文章目录

      

      在Azure Cosmos DB中,还支持Unique Key Constraints(唯一键约束)。

      我们可以在Azure CosmosDB的一个或者多个字段(Field),建立Unique Key Constraints 

      通过使用Cosmos DB Unique Key(唯一键约束),可以保证数据是唯一的,避免出现重复的数据。

      

      举个例子,假设我们使用Azure Comos DB,创建员工管理系统(CRM, Customer Relationship Management),里面的字段有:

      - First Name: 名

      - Last Name:姓

      - Email Address: 邮箱地址

      - Department: 部门

      我们可以使用Department,作为分区键(Partition Key),有关分区键的内容,可以参考:Azure CosmosDB (7) 分区键Partition Key

      对于Unique Key Constraints(唯一键约束),我们可以设计:

      (1)使用Email Address,作为Unique Key Constraints,这样保证电子邮件的值是唯一的

      假设我们插入两条相同的Email Address记录,就会显示不符合Unique Key Constraints错误

      (2)使用First Name, Last Name, Email Address和Department,将多个字段作为Unique Key Constraints

      假设我们插入两条相同的First Name, Last Name, Email Address和Department记录,就会显示不符合Unique Key Constraints错误

      设置Unique Key Constraint时候,我们需要注意以下事项:

      1.我们在创建CosmosDB的Collection时候,可以设置Unique Key Constraints。但是创建完毕后,无法修改Unique Key Constraints

      2.如果我们需要在已有的Cosmos DB Collection创建Unique Key Constraint,我们可以先创建一个新的空表,里面的字段和现有表结构相同,并加上Unique Key Constraints。

      然后使用迁移工具,将数据进行迁移

      3.一个唯一键策略最多可以包含 16 个路径值。 例如,值可能/firstName, /lastName,和/address/zipCode。 每个唯一键策略可以具有最多 10 个唯一键约束或组合。 每个唯一索引约束的组合路径不得超过 60 字节。 在前面的示例中,名字、姓氏和电子邮件地址共同构成了一个约束。 此约束使用 16 个可能路径中的 3 个。 

      4.当一个Collection有Unique Key Constraint,当我们进行增删改查操作的时候,消耗的Request Unit, RU会比较高

      5.不支持稀疏的唯一键。 如果缺少某些唯一路径值,这些值将被视为 null 值,并参与唯一性约束。因此,若要符合此约束,只能有一个项为 null 值

      6.Unique Key区分大小写。例如,考虑具有设置为的唯一键约束的容器/address/zipcode。 如果您的数据具有一个名为字段ZipCode,Azure Cosmos DB 将插入作为唯一键"null"因为zipcode未与相同ZipCode。 由于区分大小写,无法插入包含 ZipCode 的其他所有记录,因为重复的“null”违反唯一键约束。

  • 相关阅读:
    DBF数据库资料
    服务器更改IP(公网)地址后,Program Neighborhood客户端无法连接服务器
    windows server 2003 无法搜索到自己的解决方法
    windows server 2008系统(sp1) 出现MMC无法创建管理单元的解决方法
    Web方式登录出现如下提示The system was not able to acquire a citrix product license...的原因
    Dell2950服务器windows server 2003安装手记
    配置终端用户的输入法
    DELPHI高精度计时方法,取毫秒级时间精度
    金蝶KIS10专业版客户端打开'91'错误:未设置对象变量或 With block 变量的解决方法
    [转载]用三张图片详解Asp.Net 全生命周期
  • 原文地址:https://www.cnblogs.com/threestone/p/10682536.html
Copyright © 2020-2023  润新知