gpt4 book ai didi

sql - 为什么我读到这么多关于使用复合键的负面意见?

转载 作者:行者123 更新时间:2023-12-02 14:11:07 25 4
gpt4 key购买 nike

我正在开发一个喜欢自动编号标识符的 Access 数据库。每个表都使用它们,除了一个表使用由一个人的名字、姓氏和出生日期组成的键。不管怎样,人们开始遇到很多重复问题,因为表示关系的表可能会两次或更多次保存相同的关系。我决定通过为关系表实现复合键来解决这个问题,从那以后我就没有遇到重复的问题。

所以我想知道 Access 世界中组合键的不良声誉是怎么回事?我想编写查询会稍微困难一些,但至少您不必每次在前端输入数据甚至编辑数据时都进行大量检查。他们的效率是不是极其低效或者什么?

最佳答案

复合键对于单个表来说效果很好,但是当您开始在表之间创建关系时,它可能会变得有点多。

考虑两个表PersonEvent,以及它们之间的多对多关系,称为Appointment

如果 Person 表中有一个由名字、姓氏和出生日期组成的复合键,并且 Event 表中有一个由名字、姓氏和出生日期组成的复合键地点和名称,您将在 Appointment 表中获得五个字段来标识关系。

绑定(bind)关系的条件会很长:

select Person,*, Event.*
from Person, Event, Appointment
where
Person.FirstName = Appointment.PersonFirstName and
Person.LastName = Appointment.PersonLastName and
Person.BirthDate = Appointment.PersonBirthDate and
Event.Place = Appointment.EventPlace and
Event.Name = Appointment.EventName`.

另一方面,如果您的 PersonEvent 表有自动编号键,则您只需要 Appointment 中的两个字段表来识别关系,并且条件要小很多:

select Person,*, Event.*
from Person, Event, Appointment
where
Person.Id = Appointment.PersonId and Event.Id = Appointment.EventId

关于sql - 为什么我读到这么多关于使用复合键的负面意见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3512876/

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