私は、映画、監督、カメラオペレーター、作曲家、スコアなどのデータベースを設定しています。適切なDB設定 - 結合が多すぎますか?
ここで、各ムービーにタイトル、説明などの行があります。ディレクター、作曲家など。
私はフィルムテーブルのすべての行にディレクターの名前を繰り返したくないので、私は異なるテーブルに作曲家を置いています。私はその後、ディレクターのデータへの外部キーで参照するフィルムのテーブルで
、作曲など
映画のすべてのデータを取得するには、私は一緒にすべてのテーブルを結合ビューを作成します1つのMySQLクエリが私に映画の人間が読める情報を与えるようにします。
これは良い方法ですか?または、いくつかの左の結合は良い考えではありませんか?
ビューは、この(kindofが)のようになります
SELECT `movies`.`title` as `title`, `movies`.`description` as [...],
`directors`.`name` as `name` [...], `composers`.`name` as `cname` [...]
from
`movies`
left join
`directors` on `movies`.`directors_id`=`directors`.`id`
left join
`movies`.`musicians_id` = `musicians`.`id` [...]
それはそれを行うための効率的な方法でしょうか?
あなたのメソッドは*正規化*と呼ばれ、データを保存するのに適しています。 –
あなたのアプローチは完璧です。必要に応じて、LEFT JOINをINNER JOINと置き換えることができます(たとえば、すべての移動にディレクターがあると思います)。 –
私はまだ内側と左側の結合の違いを理解していません(そして、私は円で絵を知っています。迅速な回答ありがとう! –