1

まず、タイトルが悪かったことをお詫びしますが、5分後にはこれ以上のことは思いつきませんでした。

次のことを想定してください。人と銀行口座があり、それをシミュレートするために2つのテーブルを実装したいと思います。人は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が含まれています。

4

1 に答える 1

3

これがリレーショナルデータベースの仕組みであり、リレーショナルデータベースにはリレーションを持つテーブルがあります。

リレーショナルであるため、1つのクエリで、その人物に関連するPersonすべてのをクエリして取得できます。Accountこれを行うには、を実行する必要がありますJOIN

コード例

SELECT * FROM Person
JOIN Account ON (Person.ID = Account.owner)
WHERE Person.ID = XY;

ドキュメント指向のデータベースが必要な場合は、MongoDBのようなものを使用できます。このデータベースではAccount、ドキュメントに直接埋め込むことができPersonます。

于 2012-05-20T22:37:47.230 に答える