gpt4 book ai didi

mysql - 处理日期/时间时的复合主键或代理

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

我看到了很多关于此的讨论。我只是寻求您对此的建议。基本上,我使用的是 PHP 和 MySQL。我有一个 users 表,其中包含:

         users
------------------------------
uid(pk) | username | password
------------------------------
12 | user1 | hashedpw
------------------------------

另一个存储用户更新的表

                updates
--------------------------------------------
uid | date | content
--------------------------------------------
12 | 2011-11-17 08:21:01 | updated profile
12 | 2011-11-17 11:42:01 | created group
--------------------------------------------

用户的个人资料页面将显示用户最近的 5 条更新。问题是:

  1. 对于更新表,是否可以同时设置uid日期 作为复合主键,其中 uid 引用来自 usersuid
  2. 或者最好在 updates 中创建另一列,该列自动递增并将用作主键(而 uid 将是 users 中的 uid 的 FK >)?

最佳答案

您的想法(在 1. 下)基于这样的假设:用户永远在一秒内无法执行两次“更新”。这是非常糟糕的设计。您永远不知道将来会实现什么功能,但很有可能有一天 1 次点击会导致 2 次操作,因此此表中会有 2 行。

我说引用“更新”是因为我将其更多地视为日志表。谁知道您将来可能想在某个地方记录什么。

至于不寻常的主键:不要这样做,它几乎总是会再次出现在您的面前,并且您必须做大量的工作来添加适当的自动增量键。

关于mysql - 处理日期/时间时的复合主键或代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8844677/

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