Access relationships
我有很多表的数据库。数据库中的情侣与其他情侣相关。
表的排列:
1 | ID (automatic number with primary key), ID_sup (number), supplier (text), ... |
相关表:
1 | ID (number with primary key), supplier (text), address (text), ... |
因此表中的
中的几个供应商。
我尝试将其与"强制参照完整性级联更新的相关字段"连接起来,但是它不起作用。
我也尝试过更改数据类型和主键,但是我总是收到以下错误消息:
在我看来,您想要在多个表中重复(或"非规范化")供应商名称,并且如果一个关系表中的名称发生更改,则"关系"会自动更新该表中的名称。但是,"关系"通常不会那样工作。
相反,您仅在[Suppliers]表中保留供应商的名称(以及其他特定于供应商的详细信息),然后在其他表中仅通过SupplierID引用供应商。这称为"规范化数据"。??
现在,如果要让供应商名称出现在有关[Orders]的查询(或报表等)中,请在查询中将[Orders]表与[Suppliers]表联接起来,如下所示:
1 2 | SELECT Orders.OrderID, Orders.OrderDate, Suppliers.SupplierName FROM Orders INNER JOIN Suppliers ON Orders.SupplierID = Suppliers.SupplierID |
您仍然可以使用"关系"来强制执行参照完整性(即,确保每个订单都引用一个有效的供应商),但是您只需使用SupplierID而不执行其他操作即可。
您要创建一个从Table2.ID到Table1.ID_sup的一对多关系。在MS Access"编辑关系"窗口中,Table2.ID在左侧,Table1.ID_sup在右侧。 MS Access使用无穷大符号来表示关系的"许多"面。