クラッシュコース101
10 モジュール
5 週

データモデルデザイナー

クリックでコピー

データモデルデザイナーによるデータベースの作成


データベース設計

いよいよ、あなた自身のデータベースを設計するときが来ました。これを行うには、左パネルのタブ Databaseをクリックします。

Data models designer

データモデル

データベースのデータは、特別なテーブル(モデル)の形で保存されます。そして、すでに1つのモデルを持っていることにお気づきでしょう。これは authorization モジュールの一部で、デフォルトですべてのプロジェクトに含まれます。このモデルのおかげで、アプリケーションの新しいユーザーが作成され、既存のユーザーが管理されます。しかし、今はその研究に没頭せず、独自のモデルを作りましょう。

私たちは地図サービスを開発していると想像してください。国に関する情報を含むモデルを作ってみましょう。作成するには、キャンバスの何もないところで右クリックしCreate empty model.

作成するには、モデルの名前を指定するだけです。エンドポイントやユーザーインターフェース要素の自動生成については、このコースのさらなるモジュールで扱う予定です。

Create new model

モデルフィールド

作成直後、モデルはすでに4つのフィールドを含んでいることに注意してください。これらはシステムフィールドで、これがあると、モデルの初期作成とその後の利用が非常に簡単になります。

ID (integer)- 一意な識別子、主キーです。これは、テーブルの新しいエントリごとに自動的に作成され、重複がないことを保証するためのものです。テーブル内のレコードを一意に識別できるのは、IDによるものです。その値は1から始まり、新しいエントリーがあるごとに自動的に1ずつ増えていく。

CreatedAt (datetime)- テーブルでレコードが作成された時刻。

UpdatedAt (datetime)- そのレコードが最後に変更された時刻。

DeletedAt (datetime)- そのエントリーが削除された時刻。もちろん、ソフト削除が使用された場合のみである。つまり、そのような削除は、レコードが削除されたとマークされ、それへのアクセスの要求によってフィルタリングされるだけで、同時に物理的にテーブル内に残っている場合です。これは、実際にデータを完全に削除する一括削除とは異なります。

システムフィールドに加えて、作成されたモデルにカスタムフィールドを追加することが賢明でしょう。例えば、国の名前とその国に関する情報を含む説明文を表示したいとします。

フィールドタイプの選択は問題ないはずです。名前にはString 、情報的な説明にはText が適しています。

Add model field

さらに、4つのスイッチも用意されています。

Multiple values ​​(Array)- 単一項目ではなく、配列を使用します。

Not null- 指定されたフィールドは空であってはならず、常にデータを含んでいなければなりません。

Unique- このモデルでは、このフィールドの値が同じレコードが2つ存在することはできません。

Index- は、検索を高速化するために、このフィールドに特別なインデックスが作成されることを示します。

一般に、本当に必要な場合のみ、マークをチェックするのが正しいです。たとえば、名前のない国や、同じ名前の国が2つあることはありえないとして、国名にNot nullUnique をマークすることができます。ただし、これはアプリケーションのロジックを作る段階で制御して、データベース自体に制限をかけないようにするのがよいでしょう。

同様に、都市に関する情報を持つテーブルを作成します。どのようなデータフィールドを含むことができるのか、これらのフィールドはどのようなタイプなのか、考えてみてください。

データモデルの関係

データベース内のデータは、散在するテーブルという形で単独で存在するわけではありません。それらは互いに一定の関係を持っている。データモデルを開発する上で重要なのは、このような関係を定義し、関係を構築することである。

このような関係を構築するためには、あるモデルの境界から別のモデルへマウスで線を引くことが必要である。この例では、各都市がどこかの国にあることが確実に分かっているので、国から都市へのリンクを作成することができます。

Data models relations

接続には、3つのタイプがあります。

1対1(has one).テーブルの各レコードは、関連するテーブルの1つのレコードにマッピングされます(これは逆にも当てはまります)。簡単な例としては、人物とそのパスポートがある。この接続は常に一意であることが確認できる。パスポートの所持者は1人であり、各人が持つ有効なパスポートは1つだけである。

一対多(has many).あるテーブルの各レコードは、別のテーブルの多くのレコードを持つことができます。私たちのデータベースも同じような例です。1つの国は多くの異なる都市を持つことができますが、各都市は1つの国にしか属さないことができます。これが、私たちが行う接続です。

多対多。あるテーブルの複数のレコードが、別のテーブルの複数のレコードに対応することができる関係。簡単な例としては、教師と生徒の関係があります。各教師は多くの生徒を教えることができ、各生徒は多くの異なる教師から学ぶことができるのと同じです。

Was this article helpful?
まだ答えをお探しですか?