伙计们,我正在尝试为我的公司制作一个简单的票证生成系统,作为一个帮助。现在,我有一张名为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(使用前将#替换为@)