首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EntityFramework Core 学习扫盲

备用 Alternate Keys是EF CORE引入新功能,EF 6.X版本并没有此功能。备用可以用作实体除主键和索引唯一标识符,还可以用作目标。...在Fluent Api,有两种方法可以指定备用,一种是当开发者将实体属性作为另一个实体目标,另一种是手动指定。EF CORE默认约束是前者。...备用和主键作用十分相似,同样也存在复合备用功能,请大家注意区分。在要求单表列一致性场景,使用唯一索引比使用备用更佳。 1....索引 EF CORE索引概念和关系型数据库索引概念没有什么不同,比如在Sql Server,将Blog映射到数据库时,将为BlogId建立主键默认持有的聚集索引,将Post映射到数据库时,将为...PostBlogId建议默认非聚集索引

9.5K90

Sentry 开发者贡献指南 - 数据库迁移

目录 命令 将您数据库升级到最新 将您数据库移动到特定迁移迁移生成 SQL 生成迁移迁移合并到 master 指南 过滤器 索引 删除列/表 列 表 重命名表 添加列 向列添加 NOT...过滤器 如果(数据)迁移涉及大表或未索引列,最好迭代整个表而不是使用 filter。...在这种情况下,首先删除其他表列,然后返回到此步骤。 通过在列上设置 db_constraint=False,删除此表到其他表任何数据库级约束。...接下来,我们需要删除和 db 级约束。... 创建大多没问题,但是对于像 Project、Group 这样大/繁忙表,由于获取锁困难,它可能会导致问题。您仍然可以创建 Django 级别的,而无需创建数据库约束。

3.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

Laravel 通过迁移文件定义数据表结构

每一张新表、每个新字段、索引、以及都可以通过编写代码来定义,这样做好处是在任何新环境,你可以通过执行一个命令几秒钟就搞定项目的数据库结构。...修改表字段,接下来我们要讨论如何对表字段设置索引。...>increments('id'); 除了上述这些调用方式,我们还可以通过另一种方式来为字段创建索引: $table->primary('id'); $table->index('name'); $...在迁移,如果我们想建立文章表 user_id 字段与用户表 id 之间关联关系,可以通过这种方式来定义索引来实现: $table->foreign('user_id')->references...('id')->on('users'); 如果你还想进一步指定约束(级联删除和更新,比如我们删除了 users 表某个 id 对应记录,那么其在文章表对应 user_id 所有文章会被删除

2.1K20

小工具:助你上手分布式数据库

为了降低过程难度,结合之前在项目实施一点经验,自己也尝试编写工具来方便迁移分析。 1. 分布式数据库设计要点 1).选择分片对象 分布式数据库设计第一个要点,就是选择需分片对象。...数据分布方式主要就是由分片字段和选择分片算法来确定。因此,选择一个最具有代表意义字段最为分片尤为重要。而选择依据主要是看表是如何被访问及字段数据特征,根据多种因素综合考虑。...这里面设计包括: ❖ 约束 在分布式架构下,传统约束会受到很大限制,这其中包括主键、、非空、唯一、检查五类。很多分布式数据库不再支持上面这些约束部分。...这一过程也是很多分布式改造痛点,存在大量验证过程。 5).其他需考虑因素 除去上述要点,还有其他因素值得关注: ❖ 分区表情况 在传统数据库,应对海量数据规模有效手段之一就是分区。...其原理是以运行环境SQL为输入,通过解析SQL语句,找到业务核心对象及使用方式;再关联数据字典提取数据特征,方便设计者快速做出选择且不遗漏重要信息。

35340

约束

如果是多个列组合,那么默认名字就是第一个字段名字 MySQL会给唯一约束列默认创建一个唯一索引 创建表时候进行添加约束: sqlCREATE TABLE student2( sno VARCHAR...如果删除主键约束、对应索引就自动删除了。...,默认名不是列名,而是自动产生一个键名,当然也可以指定约束名 创建表顺序,先创建主表,再创建从表 表,先从表,再上主表 从表列和主表列名字可以不相同,但是数据类型必须一样。...当创建约束时,系统默认会在所在列上创建对应普通索引索引名就是约束名。...在阿里开发规范:不得使用约束与级联,一切概念必须在应用层解决 CHECK约束 检查模字段值是否复合要求 MySQL5.7可以支持该约束,但是不起作用。

75920

yii2使用Migrations为整个数据库表创建迁移

例如,在应用开发过程,新建了一张表,在应用部署到生产环境后,发现需要为这张表创建一个索引以提升查询性能,等等。...我们先找到一个核心文件:/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php 创建迁移视图文件:/vendor/yiisoft...,在Yii::$app->getDb()->getSchema()->getTableSchema(表名)方法,已经查出了表,你们可以利用。...好,上面的代码我能满足百分之80以上字段,除了一些个别特殊字段,什么是特殊字段呢?...如果报表已存在错误的话,那么就是你没有将表完,Migrations创建迁移 跟 其他操作时候,会自动新增一张为 migrtions表,这张表是记录

1.8K31

Laravel5.7 数据库操作迁移实现方法

或 dropIfExists 方法: Schema::drop('users'); Schema::dropIfExists('users'); 通过重命名表 在重命名表之前,需要验证该表包含迁移文件中有明确名字...否则,约束名将会指向旧数据表。...(‘geo_location_spatialindex’); 从 “geo” 表删除空间索引(不支持SQLite) 如果要传递数据列数组到删除索引方法,那么相应索引名称将会通过数据表名、列和类型来自动生成...Laravel 还提供了创建约束支持,用于在数据库层面强制引用完整性。...约束和索引使用同样命名规则 —— 连接表名、键名然后加上“_foreign”后缀: $table- dropForeign('posts_user_id_foreign'); 或者,你还可以传递在删除时会自动使用基于惯例约束名数值数组

3.7K31

数据库(表结构)设计技巧及注意事项

,这个人就从新加入系统,避免了其它信息录入。...当PK是字段名组合时,建议字段个 数不要太多,多了不但索引占用空间大,而且速度也慢。 19、主键与在多表重复出现, 不属于数据冗余,这个概念必须清楚,事实上有许多人还不清楚 。...因为主键作用,一是建主键索引,二是做为子表 ,所以组合主键字段个数少了,不仅节省了运行时间,而且节省了索引存储空间; (3) 一个表字段个数越少越好。...主键与设计,在全局数据库设计,占有重要地位。...当全局数据库设计完成以后,有个美国数据库设计专家说:“,到处都是除了之外,什么也没有”,这就是他数据库设计经验之谈,也反映了他对信息系统核心(数据模型)高度抽象思想。

6.7K32

mysql基本操作

多对一 :foreign key ,永远是在多那张表设置 多个学生都是同一个班级,学生是多,班级是一 两张表:学生表和班级表,学生表关联班级表 一对一 :foreign key +unique...,后出现后一张表数据作为,并且要约束这个是唯一 一个学生是一个客户,两张表:学生表和客户表 客户表作为外表,在学生表设置 多对多 :产生第三张表,把两个关联关系字段作为第三张表...数据直接存储在树结构叶子节点 辅助索引 - 除了主键之外所有的索引都是辅助索引 查询速度稍慢 数据不直接存储在树 索引种类 primary key 主键:聚集索引,约束作用:非空 + 唯一...index ind_mix on s1(id,name,email); 在联合索引如果使用了or条件索引就不能生效 最左前缀原则 :在联合索引,条件必须含有在创建索引时候第一个索引列 select...,索引不生效 最左前缀原则 :在联合索引,条件必须含有在创建索引时候第一个索引列 五、数据备份和恢复 数据备份:使用不再是mysql.exe,而是mysqldump.exe #语法: mysqldump

1.3K20

HBase工作原理

每条索引key是被索引block第一条记录key。     Meta Block Index段(可选)–Meta Block索引。     Trailer–这一段是定长。...HLog文件就是一个普通Hadoop Sequence File,Sequence File Key是HLogKey对象,HLogKey记录了写入数据归属信息,除了table和region名字...所以当达到一定阈值时候,master会自动合并storefile,在合并过程中将垃圾数据清理。而当合并出来文件达到一定程度时,再从新进行切分,防止文件过大。     ...由于hbase数据天然排序,再加上底层索引,整个查询也可以非常快。...2.行最佳实践     综合来看以下两个原则是存在冲突,所以在选择时候只能使用其中之一,具体使用那个原则,要根据实际业务以及集群能力来考虑。

2.5K110

深入理解什么是跳跃表

简单点说就是 sql 里面 where 条件里面 between 3 and 100,查询一个区间数据,数据库里面采用是B+树索引,所以可以支持,但这不是今天讨论重点,除了B+树索引,那么还有那种数据结构可以实现有序...,支持高效增,,查,并支持区间搜索呢?...,原来上层索引节点可能就不够用了,比如最早上一级节点只有1和10000,但新增数据都分布在1和10000之间,如果还不选拔新节点作为索引节点,那么性能将大打折扣,这时候需要从新插入节点里面,选取一些节点向上构建索引层...如果一个新增加节点,第一次就遇到了反面,抱歉这个节点就不能成为索引节点,只能放在最底层链表。那么我们来思考下,为什么要这样设计选拔策略呢?...,跳跃表作为一种动态数据结构,其综合性能和红黑树一样高效并支持范围检索,能做到这一点目前数据结构里面还有B+树,B+树实现其实与跳跃表结构比较类似,但B+树是通过树方式组织索引,不夸张

2.5K20

Entity Framework Core 2.1,添加种子数据

数据库该表主键Id是int自增。Id为1数据曾经存在过,但是被我删除了。 然后看看会发生什么 生成迁移类 命令:Add-Migration Xxx 看一下生成迁移内容: ?...看红线那两句话,EFCore在执行过程临时更改了设置,可以插入主键值,然后又禁用了插入主键。 数据库里面的数据 ?...我必须单独添加City种子数据,并且设置好。 所以正确做法是: ? 这次Add-Migration没有报错,迁移也成功了,看一下最后数据: ?...OK 如果无法在Model里设置主键/ 有时,我们在主从关系Model里不明确定义;有时候我们Model主键是private set; 这时我们就无法在HasData里设置主键/值了...我把City Model里去掉(导航属性仍然保留,和Province主从关系依然存在): ? 然后就可以这样添加种子数据: ? 迁移数据: ? 结果仍然如预期一样。

1.6K10

生成迁移

看红线那两句话,EFCore在执行过程临时更改了设置,可以插入主键值,然后又禁用了插入主键。...我必须单独添加City种子数据,并且设置好。...所以正确做法是: 这次Add-Migration没有报错,迁移也成功了,看一下最后数据: OK 如果无法在Model里设置主键/ 有时,我们在主从关系Model里不明确定义;有时候我们...Model主键是private set; 这时我们就无法在HasData里设置主键/值了,那么如何来添加种子数据呢?...我把City Model里去掉(导航属性仍然保留,和Province主从关系依然存在): 然后就可以这样添加种子数据: 迁移数据: 结果仍然如预期一样。

1K10

什么是MySQL事务和索引

2、一对多- 2.1 问题分析 思考:在员工表和部门表,部门数据可以直接删除,然而还有部分员工归属于该部门下,此时如果强行删除就会出现数据不完整、不一致问题。...键名称 foreign key (字段名) references 主表(字段名); 2)物理 使用foreign key定义关联另外一张表。...缺点:影响增、、改效率(需要检查关系)。仅用于单节点数据库,不适用与分布式、集群场景。容易引发数据库死锁问题,消耗性能。 3)逻辑 在业务层逻辑,解决关联。...2)实现 建立第三张中间表,中间表至少包含两个,分别关联两方主键 5、三种关系总结 一对多 在多一方添加,关联另外一方主键。 一对一 任意一方,添加,关联另外一方主键。...,它对数据库数据改变就是永久 四、索引 1、概述 索引(index)是帮助数据库高效获取数据数据结构。

13410

数据库 PostgreSQL 常用命令

**:**用于关联两个表。 复合:复合(组合)将多个列作为一个索引,一般用于复合索引。 **索引:**使用索引可快速访问数据库表特定信息。...索引是对数据库表中一列或多列值进行排序一种结构。类似于书籍目录。 参照完整性: 参照完整性要求关系不允许引用不存在实体。...索引:用户可以自定义索引方法,或使用内置 B 树,哈希表与 GiST 索引。 触发器:触发器是由SQL语句查询所触发事件。如:一个INSERT语句可能触发一个检查数据完整性触发器。...数据仓库:能平滑迁移至同属 PostgreSQL 生态 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL。...from [表名];--空整个表 删除表某行数据 create table ([字段名1] [类型1] ;,[字段名2] [类型2],......

2.1K40

数据库 PostgreSQL 常用命令

**:**用于关联两个表。 复合:复合(组合)将多个列作为一个索引,一般用于复合索引。 **索引:**使用索引可快速访问数据库表特定信息。...索引是对数据库表中一列或多列值进行排序一种结构。类似于书籍目录。 参照完整性: 参照完整性要求关系不允许引用不存在实体。...索引:用户可以自定义索引方法,或使用内置 B 树,哈希表与 GiST 索引。 触发器:触发器是由SQL语句查询所触发事件。如:一个INSERT语句可能触发一个检查数据完整性触发器。...数据仓库:能平滑迁移至同属 PostgreSQL 生态 GreenPlum,DeepGreen,HAWK 等,使用 FDW 进行 ETL。...from [表名];--空整个表 删除表某行数据 create table ([字段名1] [类型1] ;,[字段名2] [类型2],......

2.3K30

redis基础指令及数据类型

127.0.0.1:6379> select 12 OK 127.0.0.1:6379[12]> select 0 OK 迁移 move 库和库内部迁移 注:move迁移后,源库将不存在被迁移键值对...:端口 key:要迁移 destination-db:要迁移到对端哪个编号库?...列表类型以下有两个特点: 列表元素是有序,这意味着可以通过索引下标获取某个元素或者某个范围内元素列表。 列表元素是可以重复。...list使用场景:消息队列、文章列表…… set 集合 集合类型也是用来保存多个字符串元素,但和列表类型不一样是,集合不允许有重复元素,并且集合元素是无序,不能通过索引下标获取元素。...1) "it" 2) "follow" 3) "sports" sdiff 求多个集合不同元素 注:在求不同元素时,返回结果是第一个集合有,而第二个集合没有的元素。

30530

深入浅出后端开发(MySQL篇)

MySQL技术内幕(第4版) MySQL技术内幕 InnoDB存储引擎 第2版 MySQL运维内参:MySQL、Galera、Inception核心原理与最佳实践 数据库索引设计与优化 快速浏览...SQL简单来说就是根据其特定单词和语法进行组合,进行数据操作,其操作大致分为四类:增、、改、查; 当然还拥有一些其他操作,需要读者进行学习....b 表也必须要有 b 依赖 a 所以 b 表数据不给删除 必须要 a 除了 b 才能删除 反正 就是维护两张或者多张表数据一致性 关连 是两张或多张表逻辑关系 关连不需要 关连只是描述逻辑...它说是 你想成关连字段就行了 不是说关连就一定不能是 关连字段也可以是 但是尽量不要是 文章 -> 帐户 评论 -> 帐户 这个时候有约束的话 帐户就不给删除...因为要保持数据一致性 你帐户删除了 那文章 评论就找不到帐户了 要删除帐户就得把 这个帐户 文章 以及 评论全部删除了 才能那个删除帐户 而关连 则是 查询文章时候 看是谁发

1.5K180
领券