JMW*_*ker 2 ms-access ms-access-2007 relational-database relationship
每当我尝试在两个表之间创建一对多的关系时,我意识到只有在表一中的主键与表2中不是主键的元素之间存在关系时才会发挥作用.如果它有主键,则它会自动更改为一对一关系
我可以在一个表中的主键和第二个表中的主键之间建立一对多的关系吗?
不,因为每个表中的主键值必须是唯一的,所以在任一个表中都不可能有多个相同主键的值.我们可以(通常)建立一个一对多的关系主键在一个表和一个("父表")外国在其他("子")表,其中在儿童外键键table保存父表的主键值.
例:
[tblCustomers]
CustomerID CompanyName
---------- -----------
1 Company1
2 Company2
Run Code Online (Sandbox Code Playgroud)
[tblInvoices]
InvoiceID CustomerID InvoiceDate
--------- ---------- -----------
1 1 2014-07-21
2 1 2014-08-25
3 2 2014-08-28
Run Code Online (Sandbox Code Playgroud)
我们建立tblCustomers.CustomerID([tblCustomers]"父"表中的主键)和tblInvoices.CustomerID[tblInvoices]"子"表中的外键之间的一对多关系.tblInvoices.CustomerID是不是独特的,因为有可能为同一客户多发票.
请注意,如果您尝试建立tblCustomers.CustomerID([tblCustomers]"父"表中tblInvoices.InvoiceID的主键)和([tblInvoices]"子"表中的主键)之间的关系,那么该关系必须是一个一对一的关系.这也没有意义.