涉及多个表的一对一关系

2024-01-01

Say,

我有3张桌子。

User其中包含有关用户的基本信息。

SectionA其中包含有关用户的更多信息。

SectionB其中还包含有关用户的更多信息。

只能有一个SectionA and SectionB每个用户的数据。

我的想法是创建一个像这样的表格设计:

id  name   section_a_id   section_b_id
1   matt   1               1

问题是,section_a_id and section_b_id不能自动递增,因为它们不是主键。

所以我尝试了一种不同的方法并决定id主键在User应该是引用的外键section_a_id和section_b_id`。但我无法这样做,因为 mysql 只允许引用一张表。

那么我应该如何应对这种情况呢?


如果是一对一的关系,那么将三个表组合成一个大表总是更容易,并且节表的列可以为空。

我可以看到这种方法的一些积极点:

  • 更轻松的插入、更新和删除操作。
  • 当使用的连接较少时,数据检索速度更快。
  • 索引空间更少,因为您正在为一个表而不是三个表的主键建立索引。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

涉及多个表的一对一关系 的相关文章

  • 如何使用 dql 从数据表中获取唯一值?

    我有一个表 其中有一列存储了各种值 我想使用 dql 从该表中检索唯一值 Doctrine Query create gt select rec school gt from Records rec gt where rec city ci
  • 如何通过 PDO 使用密码哈希来使我的代码更安全? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的代码实际上可以工作 但它一点也不安全 我不想使用 MD5 因为它不是那么安全 我一直在查找密码哈希 但我不确定如何将其合并到我的代
  • 从 json 数组获取值并执行 sql 插入

    这是我的数组 json 1 Device ID a9a3346be4375a92 Date 2012 05 31 Time 15 22 59 Latitude 51 4972912 Longitude 0 1108178 2 Device
  • 在shell命令行中创建mysql触发器

    我需要在命令行中创建一个mysql触发器 这个sql在mysql控制台中运行良好 sql USE DB1 DROP TRIGGER IF EXISTS my trigger DELIMITER CREATE TRIGGER my trigg
  • 如何从 MySQL 中的布尔类型返回不同的字符串?

    如果我在 MySql 中将一列设置为布尔值 则查询将返回以下值 0 or 1 是否可以做这样的事情 SELECT bool value AS yes OR no 我的意思是 根据真假返回两个不同的字符串 SELECT CASE WHEN b
  • SQL命令文本到DataSet的直接方法

    如果我有 sql 命令 获取数据集的最直接途径是什么 string sqlCommand SELECT FROM TABLE string connectionString blahblah DataSet GetDataSet sqlCo
  • 如何搜索表中的所有列?

    如何在 SQL Server 中搜索表的所有列 SELECT FROM yourtable WHERE val IN field1 field2 field3 field4 如果您正在寻找精确的全场比赛 如果你正在寻找子字符串匹配 你将不得
  • 为 java 项目创建安装

    我创建了一个 java 项目 它使用数据库来检索 编辑和保存数据 我使用 Netbeans 完成了该项目 现在我想在该项目之外创建一个安装 为此 我想包含与项目一起安装的数据库 我用来连接数据库的代码是 Class forName com
  • SQL Server 大小写/排序规则问题

    今天我在客户数据库中遇到了一个奇怪的情况 SQL Server 2005 数据库排序规则不区分大小写 因此我可以使用任何大小写编写 SQL 查询 没有任何问题 除了一个 一张特定表中的一个特定列称为 DeadZone 如果我这样查询 从表名
  • 与 SQL 中的 IN 运算符相反

    我怎么能做相反的事情 换句话说 选择所有姓氏不是 Hansen 或 Pettersen 的人 WHERE lastname NOT IN Hansen Pettersen 请参阅 IN 和 NOT IN 运算符 部分SQLite 所理解的
  • 如何检查oracle数据库中分配给模式、角色的对象的权限(DDL、DML、DCL)?

    大多数时候 我们都在与愚蠢的事情作斗争 以获取架构 角色及其对象的权限详细信息 并尝试找到一些简单的方法来获取有关它的所有详细信息以及伪查询代码 以批量生成授予语句以供进一步使用执行 所以我们在这里得到它 关于数据字典视图前缀的一些简单介绍
  • SQL Server 批量插入 - “批量加载数据转换错误”

    bulk insert dbo A FROM d AData csv WITH FIELDTERMINATOR ROWTERMINATOR n 将批量数据插入数据库时 在检查可疑数据后 我遇到了无法解释的错误 消息 4867 16 级 状态
  • Hibernate saveOrUpdate 与更新与保存/持久

    我正在努力理解休眠方法之间的细微差别 saveOrUpdate update save persist 我知道网站上有一些类似的问题 Hibernate中不同的保存方式有什么区别 https stackoverflow com questi
  • MySQL:所有表都正常,但仍然错误 1577(发现事件调度程序使用的系统表已损坏)

    从我的系统日志 mysql 1663 ERROR 1577 HY000 at line 1 Cannot proceed because system tables used by Event Scheduler were found da
  • 重置 MySQL root 密码不起作用

    我花了很多时间阅读并尝试了数十种重置 root 密码的方法 但我一无所获 我发现 并尝试过 的最完整的说明如下 顺便说一句 我在 Win7 32 位上运行 MySQL 5 5 我创建了一个文件 c mysqlinit txt 其中包含两行
  • 如何将 sql 数据输出到 QCalendarWidget

    我希望能够在日历小部件上突出显示 SQL 数据库中的一天 就像启动程序时突出显示当前日期一样 在我的示例中 它是红色突出显示 我想要发生的是 当用户按下突出显示的日期时 数据库中日期旁边的文本将显示在日历下方的标签上 这是我使用 QT De
  • RANK() OVER PARTITION 并重置 RANK

    如何获得在分区更改时重新启动的 RANK 我有这张表 ID Date Value 1 2015 01 01 1 2 2015 01 02 1
  • 如何使用第二行中的值填充第一行中的空值?

    我正在尝试编写一个查询 仅显示每个名称的第一行 但这些行的标题为空 因此我想从紧邻的下一行中提取它们的标题 table1 Name Title Row Dan NULL 1 Dan Engineer 2 Dan Developer 3 Ja
  • 创建日期范围表

    我正在编写一份需要显示每天值的报告 我有查询的开始日期和结束日期 但我希望避免丢失日期 以防表不包含特定日期的值 我正在考虑创建一个基本日期范围表 其中包含开始和结束之间的所有日期 然后将其与数据表左连接以显示每一天的值 我找到了一些适用于
  • 在 SQL 中按键组对行进行顺序编号?

    SQL中有没有办法按顺序添加行号按关键组 假设一个表包含任意 CODE NAME 元组 示例表 CODE NAME A Apple A Angel A Arizona B Bravo C Charlie C Cat D Dog D Dopp

随机推荐

  • 当元素已在视口中时触发 IntersectionObserver

    The IntersectionObserver当元素在视口中可见达到一定程度 0 100 时触发 这意味着 当元素是已经 100 在视口中它不再触发 因为阈值没有变化 我有一个高度为200vh我想要IntersectionObserver
  • 将 Apache Shiro 安全库与基于 Dropwizard 的 JAX-RS 应用程序集成

    我正在尝试改变 Dropwizard 以支持 Shiro 我已阅读文档并且有点困惑 我想将 Shiro 与表单登录身份验证和 Apache Shiro 注释结合使用 我认为我需要使用 Jersey Filters 来支持 Shiro 这是在
  • Matplotlib:多线图

    我的数据框如下所示 Bin A B C Proba a Proba b Proba c gamma CPB 0 100 20841 23195 24546 34 503457 27 103303 22 859837 0 100 0 200
  • gwt-dev-mac.jar 丢失?

    我正在尝试在 Mac OS X 上使用 IntelliJ IDEA 进行 GWT 开发 并检查了同事在 Windows 上创建的 subversion 项目 项目文件附带了 GWT 的路径 C 这显然不适合我 当我在 模块设置 对话框中更改
  • 如何使用 pygame.KEYDOWN 在按住按键的情况下每次循环执行某些操作?

    我创建了 2 个函数 用于检查事件 def get pygame events pygame events pygame event get return pygame events and def get keys pressed sel
  • 最终在 Scala Try 中等效[重复]

    这个问题在这里已经有答案了 def doWork getLock Try useResource match case Success result gt releaseLock result case Failure e Exceptio
  • 使用scrollToPosition时不会调用RecyclerView onScrolled

    I have RecyclerView OnScrollListener像这样 findViewById R id button scroll to position setOnClickListener new View OnClickL
  • 在 R 中处理时间戳

    我有多个测量值列表 在每个列表中 时间戳都被格式化为字符串 2009 12 24 21 00 07 0 并且我知道列表中的每个测量值都以 5 秒分隔 我想将所有数据合并到 R 中的一个巨大的 data frame 中 之后我希望能够轻松访问
  • Python 字典列表投影、过滤器或子集?

    我正在尝试创建我认为的从较大字典空间到较小维度空间的 投影 所以 如果我有 mine name Al age 10 name Bert age 15 name Charles age 17 我试图找到一个仅返回的函数表达式 name Al
  • 从 iframe 中设置父窗口中的变量

    我有一个带有嵌入式 iframe 的父文档 在 iframe 内我有一个上传字段 一旦用户选择要上传的文件 我就会触发 jQuery 更改事件 在该事件中 我想将父窗口中的一个变量设置为 true 以便父窗口知道上传已开始 有谁知道如何做到
  • C# 使用丢弃 '_'

    我不太确定之间的区别 DataTable itemTable new DataTable itemTable CODE and new DataTable DataTable itemTable CODE 两者的工作原理完全相同 为什么我需
  • Javascript 调整 Firefox 弹出窗口的大小?

    我刚刚学习 Javascript 和 jQuery 但我是一名 HTML 人员 正在尝试迈出下一步 我正在尝试将内容放入表格中 该表格可以是任何大小 用于新闻网站 我检查大小 然后相应地调整弹出窗口的大小 虽然窗口不完全正确 但它可以工作
  • 不允许嵌套类的前向声明的原因?

    Example can t forward declare with class Foo Bar actual class class Foo public class Bar or enum Bar 我承认当前的 C 标准不允许这样做 但
  • Sequelize:使用构建来更新记录

    假设我有以下简单模型 var Foo sequelize define Foo bar Sequelize STRING 还有桌子Foos数据库中有一条记录 id bar 1 abc 为了更新此记录 我可以执行以下操作 Foo findBy
  • 我应该在哪里放置要在 AngularJS 应用程序的组件/控制器之间使用的代码?

    它应该与应用程序模块关联吗 它应该是一个组件还是只是一个控制器 基本上我想要实现的是所有页面的通用布局 我可以在其中放置或删除其他组件 我的应用程序的结构大致如下 bower components core login login comp
  • 字体文件中的什么属性使程序决定模拟粗体?

    我正在寻找字体文件中的属性 来自 WPF 的System Windows Media Fonts Typeface or GlyphTypeface 或直接访问 ttf otf 文件 这将允许我确定 Windows 中的 Write Wor
  • 获取有关 YouTube 视频的信息

    我希望获取 YouTube 视频的标题和持续时间并将其显示在我的应用程序中 我想动态地执行此操作 因为会有多个视频并且它们会发生变化 我寻找过提供此信息的 URL 但没有找到 有谁知道如何做到这一点 您需要使用 Youtube API 有关
  • QtCreator:如何设置调试参数? [复制]

    这个问题在这里已经有答案了 在 QtCreator 中 我无法找到如何设置在调试模式下运行时传递给可执行文件的参数 在 QtCreator 2 6 2 中应该是 转到 调试 下名为 项目 的选项卡 现在你必须选择适合你的 Qt 版本的工具包
  • 为什么 joblib.Parallel() 比非并行计算花费更多时间? Parallel() 不应该比非并行计算运行得更快吗?

    A joblib https joblib readthedocs io en latest parallel html模块提供了一个简单的帮助程序类来使用多处理编写并行 for 循环 此代码使用列表理解来完成这项工作 import tim
  • 涉及多个表的一对一关系

    Say 我有3张桌子 User其中包含有关用户的基本信息 SectionA其中包含有关用户的更多信息 SectionB其中还包含有关用户的更多信息 只能有一个SectionA and SectionB每个用户的数据 我的想法是创建一个像这样