C# 面试相关问题1

C# 面试相关问题(问题及答案为转载)1

1.维护数据库的完整性,一致性,你喜欢用触发器还是自己写业务逻辑?为什么?

答:

尽可能用约束(包括CHECK,主键,唯一键,外键,非空字段)实现,这种方式的效率最好;

其次是触发器,这种方式无论何种业务系统访问数据库都能维持数据库的完整性,一致性;

最后再考虑用自己写的逻辑实现,但这种方式效率最低编程最复杂,当为下下策;

相关内容:
数据库完整性:

实体完整性:每个实体独一无二(主键,唯一索引)—对自己

理解:每条数据都是唯一的,都有唯一的标志,通过主键,唯一索引等实现

参照完整性(引用完整性):子表中不能有父表中没有数据—对父子表

理解:用户表必须对应数据,数据表中就不能存在无用户对应的数据

域完整性:数据都是有效数据(数据类型和长度,非空约束,默认值约束,检查约束)—对字段

理解:每个数据都应该有意义,即使是空值及非空值的默认值(构建数据库中的预设字段在未使用时可不满足),且限制还需考录实际字段,例如年龄为0~200

以上可能涉及SQL语句:FORELGN KEY 外键,CHECH 值范围约束,DEFAULT 默认值约束

数据库一致性:

数据的一致性,用事务及锁来实现

理解:多个用户同时操作会导致在操作同一数据时拿到或更改的值应保持一致

约束:

可以理解为从数据库构建层面去考虑,设计数据库的时候,就将表内表间联系,并加以限制.

触发器:

数据库操作层面,类似于事件,用于强制完成某些操作时关联动作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yinsri

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值