gpt4 book ai didi

database - 数据库设计 : efficiency consideration when adding an intermediate class into a Many-Many relationship

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:56 26 4
gpt4 key购买 nike

据我所知,通常会引入中级类(class)来捕获信息,例如,一支球队有很多球员,一名球员多年来为许多球队效力。引入的中间类是具有基数的契约(Contract),如图所示:

球队-1----N-契约(Contract)-N----1-球员

不过,假设 98% 的查询只需要当前信息,而不关心历史信息。给定一个球员的名字,他们想知道关于他目前所在球队的信息,也许还有目前的契约(Contract)。

鉴于上述关系,是否应该始终查看所有契约(Contract)以首先找到当前契约(Contract),然后从那里获取有关团队的信息?还是应该通过玩家与其当前团队之间的直接联系来进行优化?

谢谢

最佳答案

如果确定在给定时间每个玩家只有一个团队,您只需添加currentTeam 列添加到 Player 表中,仅此而已。但请记住,每次更新 Contracts 表时都必须更新它!并且必须在事务内完成,以便数据库随时保持一致。

您以这种方式违反了一些正常形式,但您知道这样做的目的和原因 - 为了提高效率和优化。这个技巧我做了很多次。

关于database - 数据库设计 : efficiency consideration when adding an intermediate class into a Many-Many relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7048074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com