首先,我对糟糕的头衔感到抱歉,但是5分钟后我无法想出更好的作品。
请假设以下内容:有人和银行帐户,我希望实现两个表来模拟它。一个人有一个ID(主键)和一个名字。银行帐户还具有ID(主键),所有者(外键)和值。 这是我的代码:
create table Person(
ID integer primary key,
name varchar(200) not null
);
create table Account(
ID integer primary key,
owner integer references Person(ID),
value number not null
);
现在,有没有办法让一个人“知道”哪个帐户与select * from Account where owner = XY
关联?
我问我的老师,但是没有得到与SQL相关的答案。在互联网上,我找不到任何建议,所以我在这里问。
请原谅我这个问题,但我已经习惯了面向对象的语言,其中Person类包含一个Enumerable来存储所有帐户。
答案 0 :(得分:3)
这就是关系数据库的工作方式,它们有关系的表格。
因为它是关系型的,您可以在一个查询中查询Person
并获取与该人相关的所有Account
。为此,您需要执行JOIN
。
SELECT * FROM Person
JOIN Account ON (Person.ID = Account.owner)
WHERE Person.ID = XY;
如果您想要一个面向文档的数据库,您可以使用像MongoDB这样的东西,您可以将Account
直接嵌入到Person
文档中。