多对多关系?

2023-12-02

伙计们,我正在尝试为我的公司制作一个简单的票证生成系统,作为一个帮助。现在,我有一张名为tblTicket另一个表称为tblEngineer在我的 MSSQL 数据库中。

我的应用程序采用 C# Windows 表单,因此在新的票证生成表单上,我有许多文本框和一个用于分配工程师的组合框,该组合框由tblEngineer。票证生成后,在此表单中输入的所有信息都存储在tblTicket随着EngineerID from tblEngineer.

它运行得很好,但后来我的客户要求我添加选项,以便可以在一张票上分配 3 名工程师。

将来,我将不得不开发一个“工程师模块”,其中工程师将只能看到分配给他的票证。它将包括用于身份验证目的的登录系统。因此,如果生成了一个新票证并分配给 3 名工程师,则只有 3 名工程师应该能够看到该票证,而其他人则看不到。

我应该如何采用这种方法?如果只有一名工程师,这真的很容易。现在我需要制作一个多对多表吗tblAssignedEng带有票证 ID 和多个工程师 ID?作为外键引用?我对 SQL 没有太多经验,所以我在这里有点挣扎,任何帮助将不胜感激。


标准做法是这样的,例如......

你有一个“tblEngineer”表......

 tblEngineer
 -----------
 (PK) EngineerId
 EngineerName

还有一个“tblTicket”表......

 tblTicket
 ---------
 (PK) TicketId
 TicketDetails

现在,您添加一个名为“tblEngineerTickets”(或类似)的链接表,该表引用工程师及其票证的 ID...

 tblEngineerTickets
 ------------------
 (PK) EngineerTicketId
 (FK) EngineerId
 (FK) TicketId

这样,您就可以单独保存所有工单详细信息和工程师详细信息,并仅使用 Id 链接它们...链接表看起来像这样...

  EngineerId | TicketId
 ------------+----------
      1      |    1
      1      |    2
      1      |    3
      2      |    1
      2      |    2
      2      |    3

这样,您可以将多个工程师分配给一张工单,和/或将多个工单分配给一名工程师。

这是最佳实践,它为您提供了最多的扩展机会。如果您只是将字段添加到现有的工程师表中,其中包含“Ticket1”、“Ticket2”、“Ticket3”等...您将有效地对代码进行限制,并且可能您必须继续输入到添加列的代码。

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

多对多关系? 的相关文章

随机推荐

  • 使用 for 表达式从可能为空的 JSON 值中提取选项

    我有一个 JSON 文档 其中某些值可以为空 在 json4s 中使用 for 表达式 我如何能够产生 None 而不是什么也不产生 当任一字段的值相同时 以下内容将无法产生FormattedID or PlanEstimate is nu
  • 升压::正则表达式_替换

    目前我在 boost regex 方面遇到问题 我需要找到合适的单词 替换 与相应的词 我的代码现在看起来像这样 std string name ptap std string name regex b name b boost regex
  • 如何使用 awk 重命名重复行?

    我有一个包含 100 万行的文件 其中一些行是重复的 我想通过附加 variant 一个数字来重命名重复的行 该文件的格式如下 I am a test line She is beautiful need for speed Nice da
  • java 类文件中的泛型类型存储在哪里?

    我很清楚 编译 Java 代码时泛型类型会被删除 1 5 JVM 使用哪些信息 属性 来实现getGenericType ETC 它们存储在Signature属性 参见第 4 8 8 节更新了 Java 虚拟机规范 以及第 4 4 4 节关
  • html中变量前面的点表示什么?

    总的来说 我对 html 和 web 编码很陌生 下面的代码中变量前面的句点表示什么 JS code Thanks 这些不是变量 这些是 CSS 选择器 它们代表每个示例中具有该类的 HTML 节点 div class page title
  • Python 变长嵌套循环

    我试图在 python 中嵌套一个可变长度的 for 循环 并且能够重用这些变量 for i in range 0 256 for j in range 0 256 for k in range 0 256 myvar i j k 在上面的
  • 删除id最大的地方

    我想删除 order id 最大的行 我尝试了以下方法 DELETE FROM orders WHERE MAX order id 但这是错误的 还有其他想法吗 感谢您的时间 第一个想法 以及许多其他完全相同的想法 DELETE FROM
  • UML 类图中的 Java 服务器页面 (.JSP) 文件

    我正在为即将开始的项目编写设计 我想知道应该如何在我创建的 UML 类图中表示视图 jsp 文件 由于 jsp 文件不是类 它们适合放在这里吗 我认为不会 因为这是一个类图 但我不确定我应该如何表示这些 有什么想法吗 JSP 文件被认为是视
  • 安全 getElementById 或尝试确定 GUI 中是否存在 ID

    Method UiInstance getElementById ID 总是返回GenericWidget对象 即使 ID 不存在 有什么方法可以找出我的应用程序中不存在返回的对象 或者检查 UI 是否包含具有给定 ID 的对象 使用 GU
  • 安装 Docker Windows Server 2019:术语“docker”不被识别为 cmdlet、函数、脚本文件或可操作程序的名称

    尝试在 Windows Server 2019 及以下版本上以进程隔离方式安装 Docker这些步骤 我无法在此服务器上使用 Hyper V 在管理模式下运行 PowerShell 时 然而我得到了错误 Get PackageProvide
  • 如何在 Jetty 中使用 setThreadPool()

    我想看看如何使用setThreadPool 功能 假设我的主要课程如下 import javax servlet SingleThreadModel import org eclipse jetty server Server public
  • 如何在没有 Framework 3.5 的 PC 上安装 WPF 应用程序

    我有一个关于如何将 WPF 应用程序部署到没有 Framework 3 5 的 PC 上的问题 如果一台PC只安装Windows XP和sp3 是否可以设计一个可以直接在这台PC上安装WPF应用程序的安装包 情况是这样的 我设计了一个简单的
  • Python 3.5、ldap3 和modify_password()

    我一直在努力尝试通过脚本发送更新我自己密码的请求 这是代码 usr bin python3 5 from ldap3 import Server Connection NTLM ALL server Server ldap 192 168
  • 在 Python 中使用正则表达式为单词添加引号

    我试图使用正则表达式将句子中的每个单词替换为相同的单词但引用 我所说的单词只是字母 没有数字 例如4 python code应转换为4 python code 但是这段代码产生了错误的结果 gt gt gt import re gt gt
  • 以编程方式从 LocalizedResource.properties 读取密钥

    我能够将 LocalizedResource properties 与 uibinder 一起使用 假设我有在 java 文件中以编程方式创建的小部件 如何根据用户选择的语言 en fr etc 从 LocalizedResource pr
  • 如何将实体的一部分公开为DataContract?

    到目前为止 在使用 WCF 时 我始终将整个 EF 生成的实体或 POCO 通过修改 T4 模板以在 POCO 和属性上包含 DataContract 和 DataMember 公开为 DataContract 现在 我遇到了一种情况 我无
  • 如何从 C# 应用程序内部检查新 Microsoft Edge Chromium 的版本?

    有谁知道如何从 C 应用程序内部检查 PC 上安装的 Edge Chromium 版本 我在发布之前进行了搜索 在该线程的评论中 有人提供了一种从旧版 Microsoft Edge 获取版本号的方法 如何检测是否安装了 Microsoft
  • 访问动画的presentationLayer以检测碰撞

    我有两个对象 一个通过动画移动 另一个在我用手指拖动时移动 我希望能够使用 CGIntersectsRect 检测两者何时 碰撞 然而 我听说为了用动画来做到这一点 我需要访问表示层以从那里获取值 然而 我不知道该怎么做 这是我的动画代码
  • 如何获取YouTube视频的比特率信息?

    我正在使用 YouTube 视频进行测试 我想知道如何获取播放视频的比特率信息 我使用了两种方法来了解有关比特率的信息 但没有得到任何信息 1 Right click on a video and choose Stats for nerd
  • 多对多关系?

    伙计们 我正在尝试为我的公司制作一个简单的票证生成系统 作为一个帮助 现在 我有一张名为tblTicket另一个表称为tblEngineer在我的 MSSQL 数据库中 我的应用程序采用 C Windows 表单 因此在新的票证生成表单上