我正在使用Access 2010来执行此操作。
我已经创建了两个表格,我希望一对一地获得它,而且我似乎并不是一对一的关系。
CREATE TABLE Person(
ID VARCHAR(1) UNIQUE,
Name VARCHAR(30),
PRIMARY KEY (ID)
);
CREATE TABLE Passport(
ID VARCHAR(1) UNIQUE,
Country VARCHAR(30),
PRIMARY KEY (ID),
FOREIGN KEY (ID) REFERENCES Person(ID)
);
从我所掌握的一点点知识来看,这应该是一对一的关系,但它是一对一的关系。如何通过ACCESS一对一获取它?
我尝试了大部分可以在书中找到但却没有成功的东西。
请帮忙。
答案 0 :(得分:1)
您可能会被“关系”窗口中关系的显示方式误导。我运行了你的确切DDL,当我在Relationships窗口中查看关系时,看起来像一对多......
...但是当我右键单击连接两个表的行并选择“编辑关系...”时,对话框显示它实际上是一对一的:
答案 1 :(得分:0)
我相信你实际上已经按照自己的意愿建立了一对一的关系。
然而,为人和护照设置不同的设计应该是更好的设计。像这样:
CREATE TABLE Person(
PERSONID VARCHAR(1) UNIQUE,
Name VARCHAR(30),
PRIMARY KEY (PERSONID)
);
CREATE TABLE Passport(
PASSPORTID VARCHAR(1) UNIQUE,
Country VARCHAR(30),
PERSONID VARCHAR(1),
PRIMARY KEY (PASSPORTID),
FOREIGN KEY (PERSONID) REFERENCES Person(PERSONID)
);
这也适用于持有多本护照的人。