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 ...
随机推荐
- 认识Python 列表和元组
列表用方括号 l=[['xyz',123], 'abc', 3140000000.0, (23+1.3j), 'ddd'] 元组用圆括号 t=(['xyz', 123],'abc', 3140 ...
- Java如何按空格读取内容
String s = input.nextLine(); String[] data = s.split(" ");
- 部署Qt应用时候报错0xc000007b
情况: 在开发环境可以运行,部署到其他电脑无法运行: 排错:百度.谷歌了很多方法不行,后来发现添加了Qt\5.11.0\mingw53_32\bin环境变量,程序执行正常,去掉就报错:猜测估计是dll ...
- 基于CBOW网络手动实现面向中文语料的word2vec
最近在工作之余学习NLP相关的知识,对word2vec的原理进行了研究.在本篇文章中,尝试使用TensorFlow自行构建.训练出一个word2vec模型,以强化学习效果,加深理解. 一.背景知识: ...
- 微信小程序页面跳转,带参数跳转
1. wx.navigateTo (保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面.) 路径:只能跳转非tabbar路径 参数: 'path?key=v ...
- Vue Baidu Map局部注册实现和地图绘点
需求:在vue项目中,实现用户选择地图绘点或者通过搜索关键字选点 <template> <div id="home"> <h2>首页地图< ...
- wxPython制作跑monkey工具(python3)-带事件百分比显示界面
一. wxPython制作跑monkey工具(python3)-带事件百分比显示界面 源代码 Run Monkey.py #!/usr/bin/env python import wx import ...
- 2018-2019-2 网络对抗技术 20165228 Exp6 信息搜集与漏洞扫描
2018-2019-2 网络对抗技术 20165228 Exp6 信息搜集与漏洞扫描 回答问题 哪些组织负责DNS,IP的管理. 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务 ...
- 图片合并成PDF,两个PDF的合并
需求: 将多张手机照片合并成一个PDF,并于另一个成型PDF合并 过程: 使用全能扫描王处理一遍,拆剪掉多余部分,并提高亮度增加文字对比度 合并: 使用Faststone Capture合并图片即可. ...
- pip install -r requirements.txt
生成文件 pip freeze > requirements.txt pip install --help Usage: pip install [options] <requiremen ...