数据库设计原则(一)

在实践当中,经常遇到的数据库数据表之间关联的情况,涉及到延伸的引用与限制问题,本文对一些有用的经验进行了总结,供大家参考讨论。

数据库表与表之间的关联

在数据库设计的时候,经常会遇到数据表与数据表之间关联的情况,针对常见的三种关联方式,分别总结了经典的设计模式。

  • 一对一(A表一条目仅与B表一条目关联)。

如果字段不多尽量融合成一个表;如果字段过多便于区分,在B表中增加一个关联A表唯一标识的字段即可,如:id。

  • 一对多(A表一条目与B表多条目关联)。

在B数据表中增加一个关联A表唯一标识的字段即可,如:id;

  • 多对多(A表多条目与B表多条目关联)。

新增一个关联数据表,保存两表之间的关联关系,可使用唯一的标识字段,如:id。

关联后的数据条目限制编辑或删除

在有些情况下,数据表的数据条目正在被引用时,是不能被编辑或者删除的。针对这种情况,有以下两种解决方案。

  • 简单快速方案:修改前进行引用判定。

根据数据库设计时应用的关联设计方案,进行数据查询,如果被占用则返回提示消息。
缺点:不能进行预判,或者进行预判的代价比较大。

  • 麻烦但可以预判的方案:设置标志位。

根据关联关系一种关联设置一个标志位。在新增引用时置位;在删除、修改引用时检查并更新标志位。
缺点:维护标志位较为麻烦。

==================================
==疑问?帮助?批评?欢迎评论 | QQ:593159978==
==================================

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值