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”违反唯一键约束。
Azure CosmosDB (9) Unique Key Constraints的更多相关文章
- Azure CosmosDB (7) 分区键Partition Key
<Windows Azure Platform 系列文章目录> Azure Cosmos DB使用分区键(Partition Key),来对数据进行水平缩放(Horizon Scale), ...
- Azure CosmosDB (12) 创建Cosmos DB并执行查询语句
<Windows Azure Platform 系列文章目录> The SQL API supports the following aggregate functions. SUM an ...
- Azure CosmosDB (10) Azure Cosmos DB体系结构
<Windows Azure Platform 系列文章目录> Azure Cosmos DB的体系结构分为以下几个部分: 1.Database Accounts Database Acc ...
- Azure CosmosDB (14) 使用Postman访问CosmosDB REST API
<Windows Azure Platform 系列文章目录> 今天研究了一下如何使用Postman访问Azure CosmosDB. CosmosDB API接口,可以参考:https: ...
- 【Azure 存储服务】Python模块(azure.cosmosdb.table)直接对表存储(Storage Account Table)做操作示例
什么是表存储 Azure 表存储是一项用于在云中存储结构化 NoSQL 数据的服务,通过无结构化的设计提供键/属性存储. 因为表存储无固定的数据结构要求,因此可以很容易地随着应用程序需求的发展使数据适 ...
- mySQL中删除unique key的语法
CREATE TABLE `good_booked` ( `auto_id` int(10) NOT NULL auto_increment, `good_id` int(11) default ...
- Mysql如何修改unique key
link:http://www.netingcn.com/mysql-modifyunique-key.html mysql可以使用unique key来确保数据的准确性,unique key可以是一 ...
- mysql中key 、primary key 、unique key 与index区别
一.key与primary key区别 CREATE TABLE wh_logrecord ( logrecord_id ) NOT NULL auto_increment, ) default NU ...
- 不允许对索引显式地使用 DROP INDEX,该索引正用于 UNIQUE KEY
[转载]http://blog.csdn.net/w87875251l/article/details/7929657 不允许对索引显式地使用 DROP INDEX,该索引正用于 UNIQUE KEY ...
随机推荐
- TCPIP学习笔记
TCP的连接 状态变化 各个状态的意义如下: LISTEN - 侦听来自远方TCP端口的连接请求: SYN-SENT -在发送连接请求后等待匹配的连接请求: SYN-RECEIVED - 在收到和发送 ...
- 四:客服端防护HTTP发送请求类
一.源代码: public class swtDefendOperate{private BackgroundWorker backgroundWorker;//DefendType的值 Verify ...
- vim/network/ssh语法
一.编辑器——vim vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界面,vi是效率很高的文本编辑器.尽管在Linux上也有很多图形界面的编辑器可用,但vi在系 ...
- Archlinux安装总结
Archlinux安装总结 一.引导 1.BIOS与UEFI root@archiso ~ # ls /sys/firmware/efi/efivars ls: cannot access '/sys ...
- python 读取默认配置文件和用户配置文件 configs
优先从configs_default中读取配置,但是configs_override中的配置可以override它 import configs_default #import configs_ove ...
- sync.Pool的使用
一定要搞明白sync.Pool的正确用法,避免出现以下问题: kline := this.pool.Get() defer this.pool.Put(kline) kline.UnMarshal(d ...
- unity---背景循环滚动
方法一:两张图无缝拼接 float speed = 3; void Update() { transform.Translate(Vector3.right * Time.deltaTime * sp ...
- es6 this指向
在非箭头函数中,谁调用的函数,this指向就是谁: var obj={ fn:function(){ console.log(this); } } obj.fn();//object 如果this出现 ...
- 连接mysql用mysql_connect不能连接
用mysqli_connect就可以解决. mysqli_array()有连个参数,第一个是连接mysql名. php遇到这个警告Warning: Use of undefined constant ...
- 2019OO第一单元作业总结
OO第一单元作业的主题是求导,下面将分三次作业分别总结一下. --------------------------------------------------------------------- ...