在 SQL 中拥有“重复字段”的最佳方式是什么?

2023-12-27

我正在尝试建立一个表来链接不同表中的两条记录。这些链接本身需要与另一个表相关联。所以目前我的表格如下所示:



link_id    (primary key)
item_id_1  (foreign key)
item_id_2  (foreign key)
link_type  (metadata)
  

但是,项目之间的链接不是定向的(即,项目是链接中列出的第一个还是第二个项目应该没有区别)。理想情况下,我希望 item_id 字段只出现两次;事实上,我必须小心地始终检查重复项,以确保如果 14 到 12 已经存在,则永远不会创建链接 12 到 14 的记录。

是否有一个优雅的数据库设计解决方案,或者我应该采用一种约定(例如 id_1 始终是较小的 id 编号)并在应用程序中警察重复?

提前致谢!


您可以使用连接表。

表1:link_id(PK),link_type
JoinTable:table1_link_id、item_id(两个id组成的复合主键)

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

在 SQL 中拥有“重复字段”的最佳方式是什么? 的相关文章

  • 为什么 sql 字段名称中不应该包含逗号?

    人们一直告诉我列名中不应包含空格 我只是想知道 这是为什么 这是我为学校创建的一些数据库表遇到的问题 字段名称包括 Preble 和 Darke 相反 它们需要是 普雷布尔县 俄亥俄州 和 达克县 俄亥俄州 如果它们是行名称 我只需创建一个
  • 整理有关 QueryDSL-JPA 的提示

    有没有办法用 QueryDSL 来执行它 粗体部分 从地点选择 其中名称如 cafe 整理 Latin1 general CI AI 我将 JPA 与 hibernate 一起使用 您可以使用addFlag QueryFlag Positi
  • 仅当变量不为空时 SQL 添加过滤器

    您好 我有疑问如下 SELECT route id ROUTE ID FROM route master NOLOCK WHERE route ou 2 AND route query l s query AND lang id 1 这里
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • 具有 LINQ 支持的最完整的 ORM?

    我正在寻找一个提供完整或接近完整的 LINQ 支持的 ORM LINQ 到 SQL 支持 LINQ 内部的所有内容 Contains Math Log 等 在不创建新数据上下文的情况下无法预先加载关系属性 ADO NET 实体框架 糟糕的
  • 从存储过程中的动态 SQL 获取结果

    我正在编写一个存储过程 需要在过程中动态构造 SQL 语句以引用传入的表名称 我需要让这个 SQL 语句返回一个结果 然后我可以在整个过程的其余部分中使用该结果 我尝试过使用临时表和所有内容 但我不断收到一条消息 提示我需要声明变量等 例如
  • Quartz.NET 设置 MisfireInstruction

    我正在使用 Quartz NET 在 C 中工作 并且在 CronTrigger 上设置失火指令时遇到问题 我正在运行安装了 Quartz DB 的 SQL 后端 我有以下代码 可以很好地创建作业和运行调度程序 IScheduler sch
  • 非规范化如何提高数据库性能?

    我听说过很多关于非规范化的内容 它是为了提高某些应用程序的性能而进行的 但我从来没有尝试过做任何相关的事情 所以 我只是好奇 规范化数据库中的哪些地方会使性能变差 或者换句话说 非规范化原则是什么 如果我需要提高性能 如何使用此技术 非规范
  • 消息 102,级别 15,状态 1,第 1 行“ ”附近的语法不正确

    我试图从临时表中查询 但不断收到此消息 Msg 102 Level 15 State 1 Line 1 Incorrect syntax near 有人能告诉我问题是什么吗 是因为要转换吗 查询是 select compid 2 conve
  • Oracle:如果表存在

    我正在为 Oracle 数据库编写一些迁移脚本 并希望 Oracle 有类似于 MySQL 的东西IF EXISTS构造 具体来说 每当我想删除 MySQL 中的表时 我都会执行类似的操作 DROP TABLE IF EXISTS tabl
  • 外键引用多个表

    我有4张桌子 A ida name B ida B specific stuff C ida C specific stuff D ida D specific stuff 我希望另一个表 E 可以仅引用 B 或 C 而不是 D 我可以在其
  • 累计非重复计数

    我正在查询每天获取 uid 的累计不同计数 示例 假设有 2 个 uid 100 200 出现在日期 2016 11 01 并且它们也在第二天出现 新的 uid 300 100 200 300 出现在 2016 11 02 此时我希望商店累
  • 如何在动态查询中将行值连接到列名

    我正在开发一个允许配置问题和答案的应用程序 目前最多可以有 20 个答案 但也可能更少 我的结构如下 问题 ID FormId QuestionText AnswerField 1 1 Name Answer01 2 1 Address A
  • 不是 select 中带有 MAX 的单组组函数

    Select sg gameno Max sg Year sg end sg hostcity country olympic name from Summergames s Country co where s country isoco
  • INNER JOIN 可用作 SELECT,但不能用作 DELETE [重复]

    这个问题在这里已经有答案了 为什么这个有语法错误 DELETE FROM print mailing request pmr INNER JOIN person p ON p id pmr person AND p email LIKE T
  • 如何在数据库中保存未来(!)日期

    这个问题专门涉及未来的日期和时间 对于过去的值 UTC 无疑是首选 我想知道是否有人对拯救生命的 最佳 方法有建议futureMySQL 数据库中的日期和时间 或者就此而言一般来说 特别是在该列可以保存不同时区时间的情况下 考虑到时区规则可
  • 如何在 SQLite 中获取最后插入的 ID?

    SQLite 中是否有任何内置函数可以获取最后插入的行 ID 例如 在 mysql 中我们有LAST INSERT ID 这种功能 对于 sqlite 任何可用于执行相同过程的函数 请帮我 Thanks SQLite 这可以使用SQLite
  • 更新每组单行

    的背景 我有一个临时表 其中包含唯一的 rowID OrderNumber 和 guestCount 等信息 RowID 和 OrderNumber 已存在于该表中 并且我正在运行一个新查询来填充每个 orderNumber 缺少的 gue
  • 多级排序

    我有一个表 其中包含一些记录 其中包含名称 评级等字段 我首先想要根据评级将结果限制为 20 进行排序 然后在此结果集上想要进一步应用基于名称的排序 我知道要排序我们需要使用像这样的查询 Select from table order by
  • 如何处理长期运行系统中旧的、过时的数据库数据?

    程序员有哪些可能性来处理很少使用但不能简单删除的数据 因为至少报告仍然需要它 我想到的一些例子 大学老年时期停止的资助类型 未使用的货币 例如意大利里拉 消失国家的名称 例如奥匈帝国 苏联 一些部分解决方案是活动标志 活动周期 可视化优先级

随机推荐

  • 将通配符传递给别名

    我使用修改列表命令作为别名 在 KSH 中 alias ltf ls lrt d 1 PWD 所以命令ltf显示类似这样的内容 rw r r 1 myuser mygroup 0 Apr 18 12 00 usr test txt rw r
  • 用C#编写0-1背包的模拟退火算法

    我正在学习模拟退火算法 并且有一些关于如何修改示例算法来解决 0 1 背包问题的问题 我在CP上发现了这段很棒的代码 http www codeproject com KB recipes simulatedAnnealingTSP asp
  • Google Cloud SQL 的典型 ormconfig.json 文件?

    我已经尝试了几个小时了 Google Cloud SQL 与 TypeORM 配合使用的 ormconfig json 文件应该是什么 我设法让它在本地使用数据库的IP 使用mysql工作台和Google云代理并将我的IP列入白名单 但我不
  • 如何等到跟踪脚本触发后再重定向用户?

    我运行一个典型的价格比较网站 用户浏览产品 然后单击链接转到商家的网站 在被重定向到商家的网站之前 用户会看到一个 我们正在重定向您 页面 此页面仅允许跟踪代码 Google Analytics Adwords Bing Ads 来跟踪事件
  • FirebaseRecyclerAdapter 具有用于删除项目的操作模式

    我正在尝试实现一个操作模式来删除 FirebaseRecyclerView 中的项目 奇怪的是 有时删除的项目并不是选定的项目 我认为错误出现在 ToogleSelection 方法或 RemoveItems 方法中 但我不知道它是什么 适
  • PyCharm 在同一文件夹中找不到导入

    我正在使用 PyCharm 并且从同一目录中的另一个 python 文件导入一些常量 导入在运行时起作用 但我在导入语句上以及每次使用文件中的常量时都会得到这个恼人的红色下划线 这是文件层次结构 请忽略文件夹上的红色下划线 它们与此无关 是
  • FileSystemWatcher 网络断开

    我有一个 FileSystemWatcher 监视网络共享上的文件 如果发生导致共享不可用的事件 可能是由于网络问题 FileSystemWatcher 将断开连接 显然我可以处理 错误 事件 也许可以做一些日志记录 并且很多文章建议在错误
  • Matplotlib,使用 imshow 刷新图像更快

    我正在开发一个项目 在该项目上 我必须在 GUI 窗口上绘制 320 250 像素的图像 如果可能的话 每秒绘制 60 次 所以我尝试这样做matplotlib 2 0 2 Python 3 6 and PyQt5 因为我开始了解这些工具并
  • 如果是嵌套元素,则后代 Until()

    在我之前的问题中 link https stackoverflow com questions 75957548 xdocument descendants cannot distinguish between parent child e
  • 如何将 Asp.Net Server 标签添加到 JS 并对其进行评估?

    我有一个 javascript 文件 我动态地将其包含到 ASP NET MVC 视图中 该脚本设置了一些我想从中获取其值的 javascript 变量和 HTML 帮助程序 以下将 js 变量设置为等于包含 var testPortal
  • Kivy:触摸标签以选中复选框

    我正在尝试为 MCQ 制作一个 aap 这里我想要一个功能 如果有人点击与复选框相对应的标签 则该复选框也必须被选中 在Kivy中可以吗 因为 Kivy 不直接提供任何与复选框的文本关联 这是 kv 的一部分
  • 我们如何使用 startActivityforResult() 来发送电子邮件意图?

    我正在使用意图发送带有附件的电子邮件 工作正常 我想获得此电子邮件意图结果 我已经使用过startActivityforResult 但我无法获得电子邮件意图的结果 我们如何使用startActivityforResult 电子邮件意图 谢
  • 在 REST API 中使用 LINK 和 UNLINK HTTP 动词

    我目前正在致力于实现 REST API 我有一个资源模型 其中各个资源之间存在大量关系 我的问题是 如何以 RESTful 方式将两个现有资源相互链接 建立关系 我遇到的一种解决方案是使用 LINK 和 UNLINK HTTP 动词 API
  • Perl 6 的多重调度如何决定使用哪个例程?

    考虑这个程序 我在参数列表中构造了一个数组 尽管有一个接受数组的签名 但这调用了接受列表的签名 foo 1 2 3 multi foo Array array put Called Array version multi foo Array
  • 如何在 iOS10 (Swift 3) 中获取“正在播放”歌曲的歌词

    我想显示 iOS 系统播放器当前正在播放的歌曲的歌词 这是我的自定义播放器 import UIKit import MediaPlayer import AVFoundation class NowPlayingController NSO
  • 有没有办法知道Python中的Unicode字符串是否包含任何中文/日文字符?

    我在 Python 中有一个 Unicode 字符串 我正在寻找一种方法来确定字符串中是否有中文 日文字符 如果可能的话 最好能够找到这些字符 看起来这与语言检测问题有点不同 我的字符串可以是英文和中文文本的混合 我的代码可以访问互联网 您
  • Laravel 控制器中的 foreach 循环

    我在控制器 laravel 4 中循环数据时遇到问题 我的代码是这样的 owner Input get owner count Input get count product Product whereOwnerAndStatus owne
  • .NET - 将列表转换/映射为对象,反之亦然

    我有以下包含字段名称和值的列表 public class FormField public string FieldName get set public string FieldValue get set var formData new
  • 从距离矩阵中查找点的坐标

    我有一组点 坐标未知 和距离矩阵 我需要找到这些点的坐标 以便绘制它们并显示我的算法的解决方案 我可以将这些点之一设置在坐标 0 0 中以进行简化 并找到其他点 谁能告诉我是否可以找到其他点的坐标 如果可以 如何找到 提前致谢 编辑 忘了说
  • 在 SQL 中拥有“重复字段”的最佳方式是什么?

    我正在尝试建立一个表来链接不同表中的两条记录 这些链接本身需要与另一个表相关联 所以目前我的表格如下所示 link id primary key item id 1 foreign key item id 2 foreign key lin