MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了数据库设计 – 在数据库中有“外键冗余”是不是很糟糕?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在设计一个数据库结构,具有以下简化示例:
Team has many members
Member has many clients
Client has many projects

假设我的对象有这些参数:

Team: id,type
Member: id,team_id,name
Client: id,member_id,email
Project: id,client_id

找到一个项目的客户,一个客户的成员,或一个成员的团队,这是很简单的.

但是,假设我想找一个项目的团队,例如,我必须首先找到一个项目的客户端,然后是一个客户的成员,然后是该成员的团队.

我可以直接添加一个team_id到项目,像这样:

Project: id,client_id,team_id

但是,我意识到,这增加了一定程度的冗余,因为这些信息可以通过“上升关系树”获得.这是个坏主意吗?

谢谢!

解决方法

这是否是一个坏主意取决于数据库的典型用例.

添加其他外键会增加修改结构的成本(INSERT,updatE如果修改关系,Delete).

没有额外的外键会增加查询的成本,否则这些查询将从其存在中获益.

如果项目结构变化不大,但是您经常查询结构,额外的外键可能是净积极的.如果有疑问,请使用合理的测试数据创建结构,并对您认为是典型的一些查询进行基准测试.

大佬总结

以上是大佬教程为你收集整理的数据库设计 – 在数据库中有“外键冗余”是不是很糟糕?全部内容,希望文章能够帮你解决数据库设计 – 在数据库中有“外键冗余”是不是很糟糕?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: