gpt4 book ai didi

php - 如何检测表中的冗余行?

转载 作者:行者123 更新时间:2023-11-29 11:26:44 25 4
gpt4 key购买 nike

我正在遵循this answer解决方案#1 。一段时间后,表中就会出现一些多余的行。假设这个表:

+------+------------------+
| user | cookie |
+------+------------------+
| 1 | ojer0f934mf2... |
| 2 | ko4398f43043... |
| 2 | 34fjkg3j438t... |
| 3 | 0243hfd348i4... |
+------+------------------+

当用户1删除浏览器的cookie时,数据库中仍然存在此行:

| 1    | ojer0f934mf2...  |

当他打开我的网站时,他需要再次登录。所以这是表格:

+------+------------------+
| user | cookie |
+------+------------------+
| 1 | ojer0f934mf2... | -- now this row is useless anymore
| 2 | ko4398f43043... |
| 2 | 34fjkg3j438t... |
| 3 | 0243hfd348i4... |
| 1 | 0243hfd348i4... |
+------+------------------+

将来,此类无用行的数量肯定会增加。那么我该如何管理呢?实际上,我可以创建一个 EVENT 通过删除冗余行来清理该表(每天)。但问题是:我怎样才能检测到它们?如何指定某一行是无用的?

<小时/>

编辑:我可以添加一个新列并存储时间戳,然后通过 EVENT (或 cron 作业)删除所有旧时间戳行。但这并不是一个完美的解决方案。我希望 Cookie 在用户注销之前一直有效(因此我不喜欢对 Cookie 进行任何限制(或过期时间))。

现在我正在寻找一种解决方案来确定冗余行(不是旧行)。

最佳答案

添加另一列带有时间戳。然后运行常规 cron 作业来删除时间戳早于特定阈值(例如 1 天)的任何行。

您可以输入时间戳并在每次看到该用户时更新它,这意味着他们在上次使用该网站后的 x 时间内“注销”(但这意味着更多的数据库传输);或者您可以在第一次创建 session 时输入一个时间戳,并且不再触摸它,这将在他们上次登录后的 x 时间内“注销它们”(对于用户来说可能不太方便,但这意味着更少数据库传输)。

关于php - 如何检测表中的冗余行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38085782/

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