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

数据库推荐使用9个理由

来源:www.jdon.com/49188 我经验告诉我,很多数据库(大多数我曾经使用包含并不总是一件坏事。在这篇文章中,我想把重点放在为什么原因上。 为什么这是一个问题?...这会导致重新加载时数据不一致(在父表为空情况下,子表可能已满载)。这可以通过在重新加载禁用来绕过。然而,这引入了额外逻辑和复杂性以及另一个失败点。如上所述,对性能有负面影响。...通常,成本大于收益,开发人员不用担心。 4.更高层次框架 一些应用程序使用编程框架,在物理数据库之上创建另一个逻辑层。...这些框架可以自己创建数据库表,而总是创建。使用这些工具开发人员很少会干扰自动生成模式,并且不需要。...也许这个原因和以前一样,或者是下一个原因: 8.懒惰架构师 在创建数据库,如果要存储数据,则需要创建一些表和列。这是最低限度。但是,您不必创建保持数据一致性结构,如主键,唯一或约束。

2K10

数据库推荐使用 9 个理由

让我们来看看数据库可以没有原因。首先一个简短免责声明(因为文章引发了一些关于LinkedIn群体争议): 下面的理由绝不鼓励不要在数据库中使用约束。...这会导致重新加载时数据不一致(在父表为空情况下,子表可能已满载)。这可以通过在重新加载禁用来绕过。然而,这引入了额外逻辑和复杂性以及另一个失败点。如上所述,对性能有负面影响。...通常,成本大于收益,开发人员不用担心。 4.更高层次框架 一些应用程序使用编程框架,在物理数据库之上创建另一个逻辑层。...这些框架可以自己创建数据库表,而总是创建。使用这些工具开发人员很少会干扰自动生成模式,并且不需要。...也许这个原因和以前一样,或者是下一个原因: 8.懒惰架构师 在创建数据库,如果要存储数据,则需要创建一些表和列。这是最低限度。但是,您不必创建保持数据一致性结构,如主键,唯一或约束。

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

删除数据库中未指定名称存储过程

数据库中某个表A,因为业务原因被移到别的库。麻烦是,有几张子表(B, C, D等)建有指向它,而且在创建没有指定统一键名。...如此一来,在不同环境(开发、测试、生产等)中该名称不一样,必须逐个去查询键名再进行删除,十分不便。...为此,特地编写了一个存储过程,只须指定子表名(B,C,D)和列名,直接调用该存储过程即可。...Oracle存储过程代码如下: -- 删除指定表、指定列上(系统命名或未知名) CREATE OR REPLACE PROCEDURE DROP_FK(P_TABLE IN VARCHAR2,...: -- 删除指定表、指定列上(系统命名或未知名) CREATE OR REPLACE FUNCTION DROP_FK(P_TABLE IN VARCHAR, P_COLUMN IN VARCHAR

1.2K10

Linq2Sql数据实体外部更新“不能添加其已在使用中实体解决办法

Linq to Sql中,如果我们想在DataContext外部修改一个实体值,然后把引用传入到DataContext中,再利用Attach附加后更新,代码如下: public static void...try     {         db.myData.Attach(_pDate, db.myData.Single(c => c.ID == _pDate.ID));//将会出异常:“不能添加其已在使用中实体...: myData _pDate = new myData() { ID = 1, IP = "127.0.0.1" }; UpdateMyTable(_pData); 运行时,会抛出异常:不能添加其已在使用中实体...原因我就不分析了,个人理解大致意思就是外部对象跟DataContext上下文没关联,而Attach又不成功,所以当然也就更新不了....这种方法当然是可行,但是有点笨,这种不应该由人来干傻活儿最好由电脑来完成(见下面的方法) 2.利用反射自动复制属性 先写一个方法,利用反射获取属性信息实现自动copy属性值 public static

1.8K50

在django admin中配置搜索域是一个处理方法

会自动将该行数据以str()化之后进行搜索,但其实并不是这样,如果将加入到搜索域中,需要明确写出来。...系统中搜索可能会出现“related Field has invalid lookup: icontains”错误,主要原因是查询是需要指定相应字段。...不应该只是一个model,而该是另一个表明确一个字段。 所以我们需要指定特定字段 “本表字段__所在表需查询字段”。...补充知识:Djangomodel中使用,但在页面上显示是xxx_object?...on_delete=models.DO_NOTHING) def __str__(self): return self.name 以上这篇在django admin中配置搜索域是一个处理方法就是小编分享给大家全部内容了

3.8K20

如何完美解决 `could not execute statement; SQL ; nested exception is org.hibernate.exception.SQLGramm

可能原因和解决方案 2.1 实体类与数据库表字段匹配 2.2 数据库约束冲突 2.3 数据库架构变化 2.4 SQL 语法错误 3....可能原因和解决方案 2.1 实体类与数据库表字段匹配 如果实体类与数据库表字段定义不一致,可能导致 SQL 无法执行。...例如: 字段类型匹配(例如,实体类中 Long 类型映射到数据库 String 类型)。 字段名称拼写错误。 缺少映射关系。 解决方案: 确保实体类和数据库表字段名称和数据类型一致。...= null ) 2.2 数据库约束冲突 违反主键、唯一等约束可能导致无法插入或更新记录,进而产生 SQLGrammarException 异常。...解决方案: 确保数据库中表具有正确主键和约束。 插入或更新数据,确保满足表约束条件。

20810

MySQL 外码约束原理:如何解决数据库添加数据产生外码()约束?

文章目录 前言 一、插入新数据时报错约束? 二、对于出错 SQL 语句分析 三、对于外码约束分析 四、如何处理约束?...本篇文章带你进一步来深度剖析,并带着你思路来设计解决方案。 ---- 说明:本次案例案例情景是传统数据库表:学生-课程数据库。 一、插入新数据时报错约束?...我们在 Course 表中插入课程号为 1 数据提示违反了约束,插入命令如下: insert into course(cno,cname,cpno,ccredit) values('1','数据库...但是我们反观上面操作,第一个插入就是 cno=‘1’ 数据,cno=‘5’ 还没有插入,很显然不满足参照完整性规则。 四、如何处理约束?...本文提到数据库参照完整性规则是数据库设计基础知识,大家切记要重视基础,活学活用,方能在开发中百战殆! ---- 我是白鹿,一个不懈奋斗程序猿。望本文能对你有所裨益,欢迎大家三连!

2.9K20

Hibernate注解之基本注解注解使用

类级别注解 @Entity : 映射实体类,其中有一个name属性指定当前实体类映射名称 name: 可选属性 ,指定对应表名称,如果没有指定name属性,那么创建表名称和类名一样 @...insertable -可选,表示在ORM框架执行插入操作,该字段是否应出现INSETRT 语句中,默认为 true updateable -可选,表示在ORM 框架执行更新操作...-- 直接指定这个Teacher实体全类名即可,即是完成了映射 --> @JoinColumn 我们知道外生成字段名称是默认...,但是我们也可以使用这个注解改变这个名称 这个注解是用来设置自动生成属性,比如名称,非空…… name 指定名称 nullable 指定是否为空,默认是true...name 设置第三张表名称 joinColumns 设置是当前实体类对应表在第三张表字段名称 inverseJoinColumns 设置是另外一个实体类对应表在第三张表字段名称

1.9K10

JPA实体类中注解

============ 以上是针对实体注解,接下来时针对实体实体之间关联注解: 一对多 一般是在多一般维护关系,也就是多一方作为关系维护端,负责维护,而一一方是不能操作; @oneToMany...joinColum指关系维护端本身 总结 关系被维护端用mapperBy来定义关系 关系维护端用joinColum来指定名称,维护或者是@JoinTable通过中间表维护关系 *ToOne...length:表示该字段大小,仅对String类型字段有效。  insertable:表示在ORM框架执行插入操作,该字段是否应出现INSETRT语句中,默认为true。 ...表示一个多对一映射,该注解标注属性通常是数据库表  optional:是否允许该字段为null,该属性应该根据数据库表约束来确定,默认为true  可选  fetch:表示抓取策略,...例如,实体Order有一个user属性来关联实体User,则Orderuser属性为一个,  其默认名称实体User名称+下划线+实体User主键名称  @JoinTable(name =

3.8K70

Entity Framework 系统约定配置

对于一些简单,不太可能经常变化内容我们以一种约定方式进行设计。使用过其他ORM框架朋友可能知道一般ORM都有对应映射配置文件(一般是一个Xml文件),但是EF并没有。...Entity Framework 默认约定 1.将数据类类名复数形式作为数据表名称,并且使用“dbo”作为默认架构。   ...3.使用导航属性约束两个表之间关系,在从表数据类中除了导航属性,推荐定义一个属性在从表数据类中(如果指定将默认生成一个“+”列;此外在主表中推荐定义一个集合从表属性用户导航...,当然这个属性不定义也可以正常生成关系但是不利于使用),具体规则:“+”或者“+”又或者“”,其属性名区分大小写并且如果出现多种匹配按照先后顺序匹配...;如果不存在外属性则关系注册为可选,否则注册为必选项并且此时将设置级联删除关系;如果在从表类中有多个导航属性对应同一个数据类那么需要使用fluent API或者Data Annotations进行手动配置

81620

Spring学习笔记(十七)——SpringDataJpa动态查询和复杂多表操作

属性: name:指定字段名称 referencedColumnName:指定引用主表主键字段名称 unique:是否唯一。...从表:联系人表 * 再从表上添加 3.编写实体类,再实体类中描述表关系(包含关系) 客户:再客户实体类中包含一个联系人集合...@JoinTable 作用:针对中间表配置 属性: nam:配置中间表名称 joinColumns:中间表字段关联当前实体类所对应表主键字段 inverseJoinColumn...属性: name:指定字段名称 referencedColumnName:指定引用主表主键字段名称 unique:是否唯一。...targetEntity 对方实体类字节码 2.配置中间表(包含两个) JoinTable name:中间表名称

3.2K10

EntityFramework 键值映射

如果在 EF OnModelCreating 中配置了实体映射,也就是 SQL Server 中 ForeignKey,那么我们在添加实体时候,主实体主键值会自动映射到子实体键值,并且这个操作在一个...SaveChanges 中,但如果没有在 OnModelCreating 中进行映射配置,我们添加实体时候,就不会自动映射键值了,什么意思呢?...可以看到,Student 表中 ClassId 值是 0,而并不是我们预想 1,这是一个问题,在增加情况下,我们一般会这样解决: static void Main(string[] args...我们解决这个问题前提条件是“增加配置”,所以我们要让 EF 忽略实体更改: public SchoolDbContext() : base("db_school"){ Database.SetInitializer...这些错误就是主键类型匹配导致,我们操作这些接口时候,一定要传入对应类型给它们,才能正常处理。

4.1K50

Hibernate核心对象关系映射

uuid:指定uuid随机生成全球唯一值                      foreign:(使用,one-to-one时候使用)         2.1.2:多列作为主键映射...(20),默认长度255;               type:用于指定表字段类型,如果指定,会匹配属性类型,包含两种类型;                      java类型:必须写全名...uuid:指定uuid随机生成序列号,唯一值,为主键,uuid为string类型                    foreign:方式,one-to-one方式;            ...:用于指定表字段类型,如果指定,会匹配属性类型,包含两种类型; 24 java类型:必须写全名,比如java.lang.String,java.util.Date...length:自定字符类型长度,只能指定字符类型,如果指定,默认为255;            type:指定数据表字段类型,如果指定会匹配属性类型:                java

1.9K60

.NETORM框架设计(利用抽象、多态实现无反射绿色环保ORM框架)

目的之一:为了表达实体与表对应关系 ORM是实体与表一种映射关系,逐渐被发展为一种复杂技术实现模型。 在传统分层架构中,在实体定义上都会使用一个特性来标记该实体所表示名称是什么。...然后读取相关成员属性值,作为拼接SQL语句必备条件。 目的之二:为了表达属性与字段对应关系及一些主、 ORM中将实体属性映射成数据库中表字段,一般通过两种方式来表达这中关系。...{ get; set; } 第二种:直接通过属性名称来表示字段名称; public string MemberId { get; set; } 目的之三:获取实体属性中值 在进行插入或更新时候需要获取实体属性值...通过抽象、多态设计不需要特性ORM实体 大部分ORM框架是需要代码生成器做支持,不是所有的代码都是需要程序员手动去敲,可以通过一些模板引擎类代码生成器,编辑好自己模板然后生成大部分实体代码。... /// public string AttachCenter { get { return this[

73320

数据库建表语句使用及简单实战教程_SQL数据库建立一个表

1:一张表来表示所有数据(如下图) 缺点:产生大量数据冗余 思路2:两张表,学生表和班级表(如下图) 优点:优化空间,数据具有条理性 思路2将班级编号cno作为,且加上非空,这样子的话一个学生一定对应了一个班级...内容一定要是父表对应字段中存在内容,如果没有该内容,则会添加数据失败,报错。...(键指向主键) 2.经典数据库设计框架–er图 E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系方法,用来描述现实世界概念模型。...用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆图框”或圆角矩形表示实体属性,并用“实心线段”将其与相应关系实体型”连接起来; 用”菱形框“表示实体型之间联系成因,在菱形框内写明联系名,并用...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

1.4K10

MySQL-多表操作

SELECT 查询字段 FROM 表1 [INNER] JOIN 表2 ON 匹配条件; ON用于指定内连接查询条件,在设置ON,与交叉连接等价。...但是在MySQL中,CROSS JOIN与INNER JOIN(或JOIN)语法功能相同,都可以使用ON设置连接筛选条件,可以互换使用,但是此处推荐读者将交叉连接与内连接混用 左连接 左连接是连接查询中一种...关键字CONSTRAINT用于定义约束名称symbol,如果省略,MYSQL将会自动生成-一个名字。...index_ name也是可选参数,表示索引名称,如果省略,MySQL也 会在建立自动创建一个索引, 加快查询速度。...➢对于添加了约束关联表而言,数据插入、更新和删除操作就会受到一定约束。 一个具有约束丛表在插入数据字段值会受主表数据约束,保证从表插入数据必须符合约束规范要求。

3.1K20

SSH框架之旅-hibernate(3)

:一张数据表和其他数据表建立关联字段就称为是。通过一个字段,一张数据表就可以知道与之关联另一张数据表所有数据,一张数据表字段可以有多个,也即是一张数据表可以和多个数据表关联。...> 其中 name 为 实体班级属性名,class 为 name 属性值类全路径名,column 为学生表中字段名称。...set集合名,table 为学生实体类创建数据表名,可以省略写,因为 hibernate 是默认是双向维护,即在一方和多方都要配置,key 标签 column 为学生实体类数据表中键名...删除班级,这个班上学生也要全部被删除,但由于约束,无法直接删除班级,并删除学生,在hibernate 中如果直接删除班级,那么与之关联学生键值将被更改为 null,如果想把班级和学生同时删除...因为 hibernate 双向维护,所以在一方和多方数据表中都要维护,修改任意一方键值,另一方也要随之修改,这就会造成效率上问题,为此我们可以让一方放弃维护,在一方映射文件中

90520

ASP.NET MVC5高级编程——(3)MVC模式模型

首先数据库中主外定义: 主键 定义: 唯一标识一条记录,不能有重复,不允许为空 表是另一表主键, 可以有重复, 可以是空值 作用: 用来保证数据完整性 用来和其他表建立联系用...个数: 主键只能有一个 一个表可以有多个 因为这个主外属性对于理解后面的EF框架(ORM)很有帮助,所以这里我们多讲一些!...这是为了给EF框架提供一个钩子,即方便模型到数据库映射,不理解就记住,后面的项目会详细讲解。 从上面三个类代码可以看到,红色标记是主键,而黄色就是。...而称ArtistID属性为属性(foreign key),因为与模型对应数据库中,专辑表(Album)和艺术家(Artist)表存在对应关系,即ArtistID是Album表!...5 什么是实体框架,什么是代码优先和数据上下文? 新建ASP.NET MVC5项目会自动包含对实体框架(EF)引用。

4.6K40

Entity Framework 4 POCO学习

同时,EF仍旧可以帮助跟踪POCO实体变化,允许延迟加载,也会自动修正对导航属性(navigation properties)和改动。...,虽然文章是写于EF4 beta1时候,现在已经是RC,一样有效: POCO in Entity Framework : Part 1 – The Experience(【翻译】实体框架POCO支持...体验 ) POCO in Entity Framework : Part 2 – Complex Types, Deferred Loading and Explicit Loading (【翻译】实体框架...POCO支持 - 第二部分 - 复杂类型,延迟装载和显式装载 ) POCO in Entity Framework : Part 3 – Change Tracking with POCO (【翻译】实体框架...一个简单规则是,在你POCO类中使用实体类型名称,属性名称,和复杂类型名称必须匹配那些在概念性模型中定义了相应名称

1.1K80

欢迎使用开源代码生成器Code-Builder

,所以在生成需要使用者添加对应数据类型依赖,如上面的配置中则是添加了MySQL数据库依赖 ........仅仅在使用Maven-Plugin形式添加数据驱动依赖 生成控制开关 并不是每一次编译或者打包都需要生成对应实体,针对这种情况code-builder添加了execute参数来控制开启与关闭...内置参数 模板驱动数据模型内置了部分参数,code-builder准备每一个参数都是在生成实体都可能会用到。...user_id,数据类型:java.lang.String primaryKey 是否为主键,数据类型:java.lang.Boolean,true:主键,false:非主键 foreignKey 是否为...,数据类型:java.lang.Boolean,true:,false:非 size 列长度,数据类型:java.lang.Integer decimalDigits 小数点精度,数据类型

94210
领券