View on GitHub

adventure-cube

リレーション

データを設計するときに重要になる考え方です。

複数あるデータを、別のシートにまとめる

たとえばカードゲームのデータ設計で考えてみましょう。

キャラクターはそれぞれデッキを持っています。
このデッキデータを設計する際、どういう構成にするのがいいでしょうか?

考えられる要素は以下です。 ・ストーリーやイベントで戦うキャラクターは、それぞれ1つのデッキを持っています。
・デッキのカードデータは、1つのキャラに対して複数あります。

よって、「キャラクター」と、「キャラクターが持つデッキ」のデータがあれば良いと考えられます。

リレーションの設計

ER図というのを書きます。
データの内容(どういう情報を持っているか)も、できれば合わせて書いておきます。細かすぎるのはなくていいです。

このとき、関連するデータを参照できるように、「キー」というのを付けることが多いです。

たとえば、「キャラクターのIdをキーにして、デッキの情報を引っ張ってくる」というような考え方です。
これは、デッキの設定情報に、キャラクターのIdがあれば実現できます。

複雑なデータも、この「キー」という考え方を紐解いていけば、必ず全貌が見えてくるはずです。
関連しているデータの内容を書き出しておくと、どのキーを参照しているかが確認できて、とても分かりやすくなります。

参考

これの、「データ設計」シートを参考にしてください

図形は、Entity Relation(ER図のERはEntity Relationです!)にあるものを使用しています。
基本的には左上のやつを使用しましょう。
カラムは、最後のカラムを選択→右クリック→Duplicateで増やすことができます(ちょっとわかりづらい)。