最近 Web アプリを作成する際に、作成中のクエリから返される情報について考え始めました。
ユーザー情報と、(簡単にするために) このユーザーに関連付けられている電話番号を見つけます。次のような簡単なもの:
SELECT a.fname, a.lname, b.phone
FROM users a
JOIN users_phones b
ON (a.userid = b.userid)
WHERE a.userid = 12345;
ここでは問題ありません (はい、この質問のポイントではなく、注射などを防止しています)。ただし、返されるデータについて考えると、(潜在的に) 数行の情報が返され、それぞれにそのユーザー名が含まれています。1 人のユーザーに 1000 の電話番号が関連付けられているとします。これは、通話ごとに頻繁に返される名と姓です。また、そのユーザーの姓名だけでなく、さらに多くの情報を返したいと仮定してみましょう。実際には、実際には 1 回だけ必要だった余分な行をかなり多く返し始めています。
データベースに対して複数の呼び出しを行うことが「より適切」な状況はありますか?
例えば
SELECT firstname, lastname
FROM users
WHERE userid = 12345;
SELECT phone
FROM users_phones
WHERE userid = 12345;
答えが「はい」の場合、複数のクエリと単一のクエリをいつ使用するかを判断する適切な方法はありますか?