多个一对一关系-插入新记录问题

uqxowvwt  于 2021-07-26  发布在  Java
关注(0)|答案(0)|浏览(251)

后端:sql server
前端:ms access
因此,以下表格代表了问题: Master 就像一个类,子表是master的子类,所以 Master 将包含所有子级通用的数据,子级包含特定的数据
(假设master是一个泵表,child1是电气数据,child2是柴油泵数据)
主表(测试1):

ID : INT pk
A : nvarchar

类型1表(测试2):

ID : INT pk
B : nvarchar

类型2表(测试3)

ID : INT pk
C : nvarchar

工作原理:
任何现有的记录都可以编辑,任何数量的类型都没有问题
只有在“主控”中插入一条记录,然后“编辑子子项”才起作用
什么不起作用:
在主记录中插入一条记录,同时编辑子记录
使用主节点上的子节点的左连接并尝试添加一个新记录,可以输入值a,然后输入c,但是当尝试输入b时,出现以下错误
无法添加记录:表type2的主键不在记录集中
查询:

SELECT 
    dbo_T_TEST1.ID, dbo_T_TEST1.A, 
    dbo_T_TEST2.B, dbo_T_TEST3.C
FROM
    (dbo_T_TEST1 
LEFT JOIN 
    dbo_T_TEST2 ON dbo_T_TEST1.ID = dbo_T_TEST2.ID) 
LEFT JOIN 
    dbo_T_TEST3 ON dbo_T_TEST1.ID = dbo_T_TEST3.ID;

输出:

ID ----------> ID
A     |         B
      |
      -------> ID
               C

这样做的目的是能够在主记录中添加一条新记录,如果需要,还可以同时添加子记录的值
简单的解决方法(但不是干净的)是在一个表中有一个包含master+child+child的表,但是我将创建许多空值,因为master只链接到一个子类型
另一种解决方案是创建一些子查询/子窗体,以便将主窗体转换为单个子窗体(这样可以工作,但需要许多子窗体)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题