数据库表设计

2024-06-19

我在选择数据库表的变量类型时遇到问题。 有人可以给我一些关于如何选择类型的一般准则吗?以下是我的一些问题——

  1. 用户 ID 应该是什么? INT 看起来很小,因为设计时应该考虑到大量用户。那么如果不是 INT 还有什么呢?大整数? VARCHAR?难道是我思维不清晰吗?

  2. 什么时候应该选择varchar、text、tinytext、binary?

我在网上搜索并没有找到任何有用的链接。有人能指出我正确的方向吗?也许我需要看书。


2013 年更新:现在互联网的用户数量与带符号的 32 位整数大致相同。 Facebook 拥有大约 10 亿用户。因此,如果您计划成为下一个 Google 或 Facebook,并且您确实从现在到那时没有时间重新设计,选择更大的东西。否则就坚持做容易的事。

截至 2010 年:

int 看起来很小?您预计拥有 2,147,483,648 个用户吗? (根据记录,这相当于世界上三分之一的人,或者比使用互联网的总人数多 4 亿;或者是 Facebook 用户的 5 倍半)。

答案:使用int。别想太多。如果您遇到我们的老朋友 32 位整数无法满足您需求的情况,那么您可能还会拥有一群天才大学毕业生和 50 亿美元的资本注入来帮助解决问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库表设计 的相关文章

  • 使用默认路径中的文件创建数据库

    我想创建一个创建数据库的 SQL 脚本 现在 我有这个 CREATE DATABASE Documents ON PRIMARY NAME N Documents FILENAME N Documents mdf LOG ON NAME N
  • Oracle 中仅在一列上不同

    我想在下表中使用不同的值 但仅在 PlayerID 列上使用 这就是我现在所拥有的 MATCHID PLAYERID TEAMID MATCHDATE STARTDATE 20 5 2 14 JAN 12 01 JUN 11 20 5 4
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • 超集:未找到命令

    我已经使用安装了超集pip install superset命令 然后我尝试超级集数据库升级但它说superset command not found 有人能帮我一下吗 仅供参考 现在 PyPI 包是apache superset so p
  • 您能否推荐一种用于测验问题和答案的数据库设计,以允许可扩展的问题类型数量? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 到目前为止的示例问题类型 多项选择单选 想想单选按钮 多项选择多项答案 考虑复选框 匹配 现在有很多可能选择的排列 我想将它们存储在一个数据库结
  • 如何更新表以添加主键并使用递增的 ID 更新所有现有行?

    我导入了一个包含 20 000 行数据的表 但我忘记在其上放置主键 以便每一行都有一个唯一的键 我希望第一行从 ID 1 开始 一直递增到最后一行 最后在 ID 20000 处结束 如何使用单个查询更新所有行 我正在使用MySQL 已尝试使
  • C# 数据库插入 (ASP.NET) - ExecuteNonQuery:CommandText 属性尚未初始化

    我第一次从 ASP NET C 进行插入 遇到了一些问题 每次运行此代码时 我都会收到以下错误 ExecuteNonQuery CommandText 属性尚未初始化 有谁知道这意味着什么以及如何修复它 提前致谢 string sqlQue
  • PHP 和 MySQL 更新查询仅更新表中的最后一条记录

    我有一个 HTML 表单 用于通过后脚本更新 MySQL 表 但是 我遇到一个问题 即每行上的更新按钮仅适用于表中的最后一行
  • 如何在磁盘或数据库上存储稀疏可查询矩阵?

    我需要在磁盘上存储稀疏矩阵 它就像一个拥有数百万行和数千列的数据库表 其中许多或大多数列为空 它需要是可查询的 就像在某些列上带有 WHERE 的 SQL SELECT 一样 我的具体要求是Java 我首先想到使用Java 版 Berkel
  • 从局域网上的另一台计算机访问wamp中的网站文件和phpmyadmin

    我将文件托管在一台充当服务器的计算机上 但我想从局域网上的另一台计算机访问根 www 目录文件和 phpmyadmin 通过访问 我的意思是编辑它们并打开它们以查看和进行更改到数据库和代码 这怎么可能 默认情况下 WAMPServer 配置
  • cx_Oracle 和数据源范例

    有一个 Java 范例用于在 Java 中实现数据库访问DataSource 该对象围绕数据库连接的创建创建了一个有用的抽象 这DataSource对象保留数据库配置 但只会根据请求创建数据库连接 这允许您将所有数据库配置和初始化代码保留在
  • SQLite 连接在 C# 中不起作用

    我正在使用操作 SQLite 数据库的 C 应用程序 直到昨天它工作正常 它正在检索记录 但从昨晚开始 连接字符串返回 Data Source null 下面是测试代码 using System using System Collectio
  • 使用 VS 2010 数据库管理示例数据

    我正在使用 Visual Studio 2010 中的数据库项目来管理我的所有数据库代码 对于我的应用程序 我们将每个客户端的数据分离到他们自己的数据库副本中 并使用通用数据库将用户映射到适当的数据库 我希望在 TFS 中保留几个不同的示例
  • 如何让MySQL数据库完全在内存中运行?

    我注意到我的数据库服务器支持内存数据库引擎 我想让一个已经运行 InnoDB 的数据库完全在内存中运行以提高性能 我怎么做 我探索了 PHPMyAdmin 但找不到 更改引擎 功能 假设您了解注释中提到的使用 MEMORY 引擎的后果 并且
  • php 中每个数据库扩展的字符串如何转义?

    在任何人对这个问题的性质做出结论之前 我已经知道了参数化 准备好的语句 http en wikipedia org wiki Prepared statements Parameterized statements并尽可能使用它们 不幸的是
  • InnoDB vs. MyISAM 插入查询时间

    我有一个大型 MySQL 表 约 1000 万行 6 5G 用于读取和写入 它是MyISAM 由于MyISAM 的所有表写入锁 我获得了很多锁 我决定尝试迁移到 InnoDB 推荐用于读 写表 它只锁定写入时的特定行 转换后 我测试了插入语
  • 数据库设计:循环依赖

    想象一下以下数据库 表 companies 包含字段 id name 和旗舰产品 ID 表 products 有字段 id name 和 company id 一家公司必须有一款旗舰产品 1 1关系 所有产品都有一个公司 1 N关系 当使用
  • 保存用户的身高和体重

    我应该如何将用户的身高和体重存储在MySQL数据库中 以便我可以使用这些信息来查找特定身高或体重内的用户 另外 我需要能够以英制或公制显示此信息 我的想法是存储以厘米为单位的身高和以公斤为单位的体重信息 我更喜欢公制而不是英制 我什至可以让
  • 一次将多个值插入MySQL [重复]

    这个问题在这里已经有答案了 谁能解释一下为什么这个 PHP MySQL 不起作用 基本上我需要从表单中一次插入大量行 因此会有多个名称字段 多个短 中 长字段等 我收到此错误 Notice Undefined variable Short1
  • 数据库约束与应用程序级验证[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在研究这个主题时 我发现了这篇文章 您是否应该在数据库级别和应用程序级别强制实施约束 https stackoverflow com quest

随机推荐