
外键:子表数据存在的前提是主表中有相同键值的数据存在,删除时,先删除子表的相同键数据,再删除主表的相同键数据。以此保证数据完整性。主表对子表是1对多关系,因此是外键可以重复。
空值不能作为主键。
主键不用啦,有非重复索引/约束就可以了,
CREATE Index Unique就可以了
当然主键也是一种非重索引,不过一个表只能有一个主键,但是可以有多个非重索引。
插入前判断,也是可以的,这种方法从性能角度考虑,能避免就应该避免。
你是用textBox1Text 或者 textBox2Text 中的一个做的主键吗?这肯定不行,重新设计下数据库,增加一个自增列作为主键列吧。
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。
扩展资料:
设计原则
1、一对一设计原则
在软件开发过程中,需要遵循一对一关系设计原则进而开展数据维护工作,通过利用此原则能够尽量减少维
数据库
护问题的出现,保证数据维护工作顺利开展同时降低维护工作难度。在此过程中,尽量避免数据大且数据杂现象出现,否则既会影响到软件开发进度,又会增加工作难度,给其产品质量带来影响。所以,设计工作人员必须重视起此问题。
同时充分了解实体间存在的必然联系,进而实现信息数据分散的目标,并在此基础上提高整体工作人员的工作效率,提高软件应用程序可靠性、科学性、安全性以及自身性能。
2、独特命名原则
独特命名原则的应用是为了减少在数据库设计过程中出现重复命名和规范命名现象出现。通过应用此原则能够减少数据冗杂,维护数据一致性,保持各关键词之间存在必然相对应联系。独特命名原则能够锻炼工作人员对大小写字母熟练 *** 作能力,有利于规范化后台代码工作的开展。
3、双向使用原则
双向使用原则包括:事务使用原则和索引功能原则。首先,双向使用原则是在逻辑工作单元模式基础上实现其表现形式的,不仅给非事务性单元 *** 作工作提供基础保障,也保证其能够及时更新、获取数据资源。
索引功能原则的有效运用,使其获取更多属性列数据信息,并且对其做到灵活排序。目前,软件市场常见的索引模式有:多行检索聚簇索引和单行检索非聚簇索引
参考资料来源:百度百科-数据库设计
说你在一中插入了重复键(Primary key)是主键约束,一般情况下出现以下几种情况:
物理表中插入了重复的键。
查看数据库,待插入表确实存在了已经存在的主键,所以不能够重复插入。
程序实体集中插入了重复键。
这个比较难查一些,一般是在程序中使用了dataset/datatable或实体集(linq to sql,EF技术)而插入时是先手入到实体集,由实体集向数据库更新数据,实现持久。在相应的datatable中插入了重复的键也是不可行的!
在同一事务中存在的两次插入。
写程序时不小心,在同一事务中两次插入,自然会引起主键约束,而错误后进行了回滚,导致一个也插入不了。在非事务中,则会插入一条,二次插入时报错。
其实在同一事务中的两次插入,可能是插入到物理表,也可能是在程序实体集中插入,总之不管哪种情况都是出现相同的结果。
以上就是关于SQL数据库主键与外建的约束是怎么保证数据的完整性的 外键为什么可以重复空值怎么和主键建立联系全部的内容,包括:SQL数据库主键与外建的约束是怎么保证数据的完整性的 外键为什么可以重复空值怎么和主键建立联系、怎么避免SQL数据库中有重复的数据输入、违反了 PRIMARY KEY 约束 'PK_sc'。不能在对象 'dbo.sc' 中插入重复键。 语句已终止。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)