SQL 一对多

2023-12-05

我正在尝试为我们拥有的系统构建一个 SQL 模式channels,每个都有一个id,以及一个或多个fixtures。我很难找到实现这种一对多映射的方法。 (即一channel太多fixtures)。我正在使用H2数据库引擎.

我不能有桌子:

 id | fixture
----|----------
  1 |    1
  1 |    2
  2 |    3

CREATE TABLE channel(
  id INT NOT NULL PRIMARY KEY,
  fixture INT NOT NULL
  );

...作为PRIMARY KEY id必须是UNIQUE.

同样,我无法按如下方式映射:

CREATE TABLE channel(
  id INT NOT NULL PRIMARY KEY,
  f_set INT NOT NULL REFERENCES fixtures(f_set)
  );

CREATE TABLE fixtures(
  id INT NOT NULL PRIMARY KEY,
  f_set INT NOT NULL
  );

...因为这需要f_set to be UNIQUE

我目前正在实施如下:

CREATE TABLE channel(
  id INT NOT NULL PRIMARY KEY,
  f_set INT NOT NULL REFERENCES fixture_set(id)
  );

CREATE TABLE fixtures(
  id INT NOT NULL PRIMARY KEY,
  f_set INT NOT NULL REFERENCES fixture_set(id)
  );

CREATE TABLE fixture_set(
  id INT NOT NULL PRIMARY KEY
  );

...但这意味着我们可以有一个channel with a fixture_set没有任何分配的fixtures(不理想)。

我想知道您是否对我如何解决这个问题有任何建议(或者我的理解是错误的)。谢谢


“一对多”意味着许多项目(可能)引用一个项目。如果它是多个灯具的一个通道,则灯具应参考通道,而不是相反,这意味着参考列应位于fixtures table:

CREATE TABLE channel(
  id INT NOT NULL PRIMARY KEY
  );

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

SQL 一对多 的相关文章

随机推荐

  • 用python将多页pdf文件分割成多个pdf文件?

    我想获取一个多页 pdf 文件并为每页创建单独的 pdf 文件 我已经下载了报告实验室并浏览了文档 但它似乎旨在生成 pdf 我还没有看到任何有关处理 PDF 文件本身的内容 有没有一种简单的方法可以在 python 中做到这一点 from
  • 如何找出从共享对象导出的所有符号?

    我有一个共享对象 dll 我如何找出从中导出的所有符号 您是否有 共享对象 通常是 AIX 上的共享库 UNIX 共享库或 Windows DLL 这些都是不同的事情 你的问题将它们全部混为一谈 对于 AIX 共享对象 请使用dump Tv
  • R bookdown 中标题前的封面页和版权声明?

    早在三月份 我就在 R bookdown 渲染的 pdf 文档中包含封面页提出了一个问题并得到了答案 R bookdown 封面页和附录 我尝试了该解决方案并得出以下结果 在index rmd yaml中使用 output pdf docu
  • GEKKO 和 Scipy.optimize 导致非线性参数估计结果不同

    我正在学习如何使用 GEKKO 来解决参数估计问题以及 作为第一步 我正在开发我遇到的示例问题 之前使用 Scipy 最小化例程实现 这些有 已按照 APMonitor com 中提供的信息和 内提供的课程 目前的问题是间歇式反应器 甲醇转
  • selenium webdriver chrome 115 停止工作

    I have 铬 115 0 5790 99安装在 Windows 上 我使用硒4 10 0 在我的 python 代码中我调用服务 服务 ChromeDriverManager install 它返回错误ValueError url 没有
  • 在新安装的 MySQL 上使用以前的 MySQL 数据文件夹

    如果我能做出适当的SQL dump backup我本来会的 但是OS已过期 只能登录SafeMode 我无法启动的地方MySQL server 因此 我只能手动备份文件目录 我有 C ProgramData MySQL MySQL Serv
  • 在 .NET 中,对于 128 位数字,我应该使用什么类型?

    我需要做一些大整数数学运算 是否有任何类或结构可以表示 128 位整数并实现所有常用运算符 顺便说一句 我意识到decimal可以用来表示 96 位 int While BigInteger是大多数应用程序的最佳解决方案 如果您有性能关键的
  • 事件未到达 kurento java 服务器

    我是 Kurento 媒体服务器的新手 我正在尝试将事件从 kurento 媒体服务器发送到我拥有的 java 应用程序 我使用以下步骤创建了一个事件 编辑了interfacejson 文件 events properties name T
  • 约束线性回归/二次规划 python

    我有一个这样的数据集 import numpy as np a np array 1 2 2 3 4 2 b np array 1 5 6 c np array 5 4 6 2 1 9 m np vstack a b c y np arra
  • $(document).ready(function () $ 未定义[重复]

    这个问题在这里已经有答案了 我正在开发 asp net mvc 并使用 Kendo UI 网格控件进行数据检索 将这些功能用于另一个应用程序 但问题不在代码中 所有 JavaScript 和 Kendo grid ui 参考 包括当我运行应
  • “instanceof List”和“o instanceof List”之间的区别

    我认为以下内容没有任何区别 Object o new LinkedList
  • 如果 HTML 文本太大,则添加省略号 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如果字符串太大 有没有办法在字符串中添加省略号 三个点 例如 From This is a very large sentence To This is a ve 可以使用 PHP
  • 如何使用 Java JDBC 从数据库获取所有触发器名称?

    我想从 Oracle 数据库模式中检索所有触发器名称 我使用 getFunctions 检索所有函数 但找不到另一个触发器 DatabaseMetaData dbmd ResultSet result dbmd getFunctions n
  • 错误:Visual Studio 中未加载 opencv_world310.dll 的符号

    我正在 Visual Studio 2015 中使用 OpenCV 3 1 0 编写程序 大多数操作工作正常 但是 我收到访问冲突错误 我已经调试了该项目 执行faceClassifier load haarcascade frontalf
  • 如何检查数组中每个项目的第一个字母?

    我正在构建一个猪拉丁语翻译器 但我不知道如何识别输入单词的第一个字母 我已将输入转换为数组 其中每个项目都是一个新单词 但是如何选择每个项目的每个第一个字母来确定它是否是辅音 元音 等 a This is a sentence for wo
  • 为什么结构体字段显示为空?

    我正在努力从以下代码中获得正确的输出 package main import encoding json fmt func main var jsonBlob3 byte name Platypus spec Monotremata id
  • android 所有动态生成按钮的点击事件

    我编写代码来生成动态按钮 但我不知道如何动态实现每个按钮的单击事件 我找到了一些答案 但无法使用我的代码 请帮助我 这是我的代码 public class dynamicbuttion extends Activity Override p
  • 如何按需挂起 Java 线程?

    我正在用java开发一个多线程游戏 我有几个工作线程从中央线程管理器获取模块 然后自行执行 现在 如果它暂时没有什么可执行的 我希望能够暂停这样的线程 我尝试从线程管理器调用 wait 方法 但这只会导致它忽略后面的 notificatio
  • 带边框和透明间隙的 CSS 三角形切口

    我需要使用 CSS 绘制以下图案作为页面各部分之间的分隔符 使用skewX 技术来自这个答案 我能够准确地模仿三角形切口 两个伪元素附加到下部部分的顶部 一个向左倾斜 一个向右倾斜 以便上部部分的背景显示出来 但我不知道如何添加边框 如第一
  • SQL 一对多

    我正在尝试为我们拥有的系统构建一个 SQL 模式channels 每个都有一个id 以及一个或多个fixtures 我很难找到实现这种一对多映射的方法 即一channel太多fixtures 我正在使用H2数据库引擎 我不能有桌子 id f