gpt4 book ai didi

sql - 在 SQL 数据库中复制/不必要的数据

转载 作者:行者123 更新时间:2023-12-04 20:01:33 24 4
gpt4 key购买 nike

在为多个用户设计一个新的应用程序/数据库时,通常需要有一个用于用户管理的表。

该表通常始终具有用户名和 ID....

只是为了确认我不是白痴(好吧,您可能仍然这么认为!)我刚刚下载并查看了 MediaWiki 和 PHPBB 的架构,他们也这样做。

当我第一次了解关系数据库时,我总是被告知一个重要的规则是永远不要复制数据或做任何不必要的事情。

那么,为什么我们将 ID 作为主键而不是用户名呢?

我理解它不是唯一的原因(例如 SO 系列站点),但是在这些应用程序中,它是。

我唯一能想到的是做一个 Select * from xxx where ID="454" 会更快而不是 Select * from xxx where name="some_really_long_name"或者因为名称非常长会大大增加数据库的大小。

这些是唯一的原因,还是我在这里错过了什么?

最佳答案

使用整数非智能主键代替唯一文本键的原因:

  • JOIN 和其他查询的速度。
  • 能够更改文本键值并保持数据库的完整性,而无需更新引用该键的每个表。
  • 当您的应用程序必须在内存中构建键值列表时,提高代码效率并减少内存开销。
  • 减少引用键的表的大小。
  • 关于sql - 在 SQL 数据库中复制/不必要的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1794070/

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