gpt4 book ai didi

php - MySQL 优化数据库中的数据存储,当条目更改时

转载 作者:行者123 更新时间:2023-11-29 12:31:09 24 4
gpt4 key购买 nike

我们遇到了一个问题:

当我们生成帐户(或其他文档)时,我们使用客户(员工)数据。但是,客户可以更改他们的数据(例如,女性结婚并更改了姓氏,或者她搬家了)居住在其他国家并且她的地址发生了变化)。

我们需要在编辑女性姓氏、帐户后在特定日期之前保留旧姓氏,在该特定日期之后,使用女性的新姓氏。

例如我们有一个女人:艾米丽·史密斯。她于2014年12月15日结婚,她的姓氏变成了布朗。之前:12 月 15 日,我们使用 Smith 姓氏生成她的帐户,但在 12 月 15 日之后我们需要用布朗姓氏生成她的帐户。所以在数据库中我们需要保存她的姓氏。

如何保存仅使用一个或几个更改的属性优化的条目?

附注我们还需要保存更改的日期,以便知道要使用哪个姓氏,旧的还是新的。

最佳答案

这称为缓慢变化的维度。传统的方法是记录附有生效日期和结束日期。因此,Emily 在该表中将有两行:

AccountId    Firstname     LastName     EffDate      EndDate
1 Emily Smith 2001-01-01 2014-12-14
1 Emily Brown 2014-12-15 NULL

通常,当前记录的 NULL 值可能是某个遥远的 future 日期(例如 9999-12-31)。不必在逻辑中处理NULL可以提高性能。

然后,当您想要特定日期的记录时,您只需使用该日期有效的记录即可。如果您想要当前记录,则同样的逻辑成立 - 查找今天有效的记录。

关于php - MySQL 优化数据库中的数据存储,当条目更改时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27485558/

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