数据库表可以没有主键吗?

2024-05-03

谁能告诉我关系数据库(例如MySQL / SQL SERVER)中的表是否可以没有主键?

例如,我可以有桌子day_temperature,我注册的地方temperature and time。我不明白为什么要为这样的表设置主键。


从技术上讲,您可以声明这样一个表。

但就你而言,time应该使PRIMARY KEY,因为同时具有不同的温度可能是错误的,并且多次具有相同的温度可能是无用的。

从逻辑上讲,每个表都应该有一个PRIMARY KEY这样你就可以区分两个记录。

如果您的数据中没有候选键,只需创建一个代理键(AUTO_INCREMENT, SERIAL或您的数据库提供的任何内容)。

没有的唯一借口PRIMARY KEY是一个日志或类似的表,受重度影响DML并且对其进行索引会对性能产生超出容忍水平的影响。

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

数据库表可以没有主键吗? 的相关文章

随机推荐

  • “System.Composition.TypedParts.dll”在哪里?

    我正在尝试使用容器配置来自托管扩展性框架 MEF 的类型 根据here http msdn microsoft com en us library system composition hosting containerconfigurat
  • 尝试将 nil 与数字堆栈回溯进行比较?

    我正在通过以下链接玩 Lua https www lua org pil 4 2 html https www lua org pil 4 2 html并对某一点感到困惑 Lua 5 2 4 Copyright C 1994 2015 Lu
  • 我在统一复制门时遇到问题

    我正在尝试统一复制我的门 但是 当我尝试这样做时 只有原来的门正在执行打开和关闭等动画 我有一个 UI 按钮 它使用 OnClick 函数来操作门 当我输入触发器时它会弹出 这是带有OnClick功能的按钮UI https i stack
  • iReport:如何隐藏带有文本字段的行,而没有数据行包含不同类型的数据

    我有空文本字段 它包含字符串或大十进制值 放在为我的报告拉出的单行上 该行显示一个空行 为了删除具有空行的空白行 我使用了该属性isRemoveLineWhenBlank对于该行中的报表元素 但这是行不通的 有人可以帮我解决这个问题吗 sn
  • usort 不适用于 laravel 多维数组

    我有一个数组 Illuminate Support Collection Object items protected gt Array 0 gt stdClass Object id gt 79 name gt shelin status
  • 我可以实施对半取偶吗?

    我需要去做四舍五入到偶数 https en wikipedia org wiki Rounding Round half to even在浮子上 即 如果该值是两个整数之间的中间值 打破平局 y 的小数部分正好是 0 5 则四舍五入到最接近
  • 如何在 Android 4.1+ 上将自签名 SSL 证书导入到 Volley

    我开发的android应用程序使用Volley 所有通信均通过HTTPS联系 因为我是在本地环境测试的 所以我对Tomcat使用自签名证书 之前我只有安卓2 3 and 3 0设备 现在我也有了4 1和4 4 我的实现使用这种方法 http
  • 如果 gem 安装不支持,本机扩展会回退到纯 Ruby

    我正在开发一个 gem 目前是纯 Ruby 但我也一直在为其中一个功能开发更快的 C 变体 该功能在纯 Ruby 中可用 但有时很慢 这种缓慢只会影响一些潜在用户 取决于他们需要哪些功能 以及他们如何使用这些功能 因此 如果 gem 无法在
  • 是否可以在纯 Rust 宏中编写像“print!”这样复杂的东西?

    我开始学习 Rust 宏 但文档有些有限 这很好 我想它们是一个专家功能 虽然我可以进行基本的代码生成 特征的实现等 但一些内置宏似乎远远超出了这些 例如各种打印宏 它们检查字符串文字并将其用于代码扩展 我在看的来源print https
  • 如何在 microk8s 中使用本地 docker 镜像?

    我一直在使用 minikube 在本地测试 Kubernetes 在 minikube 中 我们可以使用本地 docker 镜像eval minikube docker env 命令 我开始探索microk8s 在我运行 Ubuntu 18
  • 如何在 netsuite 中使用 suitescript 2.0 显示自定义错误消息而不使用堆栈跟踪

    我想使用 suitescript 2 0 版本向用户显示没有堆栈跟踪的自定义错误消息 在工作流程中 自定义错误消息在没有堆栈跟踪的情况下显示 但在套件脚本中 错误消息 与堆栈跟踪一起显示 堆栈跟踪错误 type error SuiteScr
  • 一起使用@Scheduled 和@Async 吗?

    如果我想要一个重复异步的方法 我可以一起使用 Scheduled 和 Async 吗 Async Scheduled fixedDelay x public void doSomethingEveryXMinuteAsync action
  • 如何将CSS应用于iframe内容? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我无法让 CSS 生成的内容发挥作用
  • Google 文件系统中的块大小问题

    谷歌文件系统论文 http labs google com papers gfs html 块大小是关键设计之一 参数 我们选择了64MB 这比典型文件大得多 系统块大小 每个块 副本存储为普通 Linux 文件放在 chunkserver
  • 如何将data_files安装到绝对路径?

    我使用 pip 和 setuptools 来安装软件包 我希望 pip 将一些资源文件复制到 例如 etc my package My setup py看起来像这样 setup data files etc my package confi
  • 在flutter中动态显示数据表布局中的JSON数据

    我正在 flutter 中创建动态数据表视图 其中列标题和行值是动态添加的 数据是一个 Json 响应 标题是一个字符串数组 行中要显示的数据也是一个字符串数组 目标是在表视图中显示数据 而不需要任何硬编码值 这就是我尝试显示数据的方法 r
  • Firebase - 将对象推送到嵌套的对象列表中

    Firebase 将对象推送到嵌套的对象列表中 目前的尝试 this application userUid this uid this application companyUid job uid this application job
  • 配置 Jersey + Jetty + JSP

    我如何配置该项目以便它能够呈现 JSP 文件 我希望以 rest 开头的 URL 路由到球衣资源 并让 URLS 提供 JSP 文件 我这个项目中没有任何 web xml 项目文件夹 src main java Main java reso
  • 在获得响应之前发出多个请求

    当并行发送多个请求时 在获得响应之前 我无法理解 HTTP 的工作原理 有两种情况 1 With Connection Keep Alive 根据HTTP规范 http www w3 org Protocols rfc2616 rfc261
  • 数据库表可以没有主键吗?

    谁能告诉我关系数据库 例如MySQL SQL SERVER 中的表是否可以没有主键 例如 我可以有桌子day temperature 我注册的地方temperature and time 我不明白为什么要为这样的表设置主键 从技术上讲 您可