我有以下表格
表1:机器清单
machinename (PK,ncarchar(10),not null)
machine_id (computed,nvarchar(2),null)
表2: JDEPARTIMGLU
ndx_jde_part_img (pk,int,not null)
jde_part_num (varchar(20)null)
- ....(更多专栏)
我想在machinename
和jde_part_num
之间建立多对多的关系。我想我需要使用联结表来执行此操作。我尝试使用table1中的machinename
和table2中的jde_part_num
,但我在设置FK时遇到了问题。
我不确定自己是否走在正确的轨道上,是否有人可以帮助我指导我如何做到这一点?
我将在许多机器和许多使用相同部件的机器上使用许多部件
答案 0 :(得分:1)
是的,你需要第三张表machine_parts
machinename FK (machinelist)
ndx_jde_part_img FK (JDEPARTIMGLU)
因此,如果您有一台机器可以找到它使用的所有部件。如果你有一个零件可以找出哪些机器需要它。
答案 1 :(得分:1)
您必须在联结表上使用两个PK
CREATE TABLE Junction
(
machinename nvarchar(10) not null,
ndx_jde_part_img int not null,
PRIMARY KEY (machinename,ndx_jde_part_img),
CONSTRAINT fk_machines FOREIGN KEY (machinename) REFERENCES machinelist(machinename),
CONSTRAINT fk_parts FOREIGN KEY (ndx_jde_part_img) REFERENCES JDEPARTIMGLU(ndx_jde_part_img)
);
您甚至可以在此表中添加一些新列,例如该计算机上所需的部件数量。
答案 2 :(得分:0)
我将Machine_ID INT
作为PK添加到第一个表格,然后在第3个表格中使用Machine_ID INT
,ndx_jde_part_img INT
和Quantity DECIMAL
。然后为该表构建FK。