0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

データベース設計その1

0
Posted at

SQLを一通り基礎をまとめたので
次はデータベース設計に手を付けます。

データベース設計

データベース設計は基本的には現実世界の要素をデータに落としこむ作業です。
要素とは例えばユーザーです。ユーザーをデータベースで管理するには

  • 「ユーザーという概念(エンティティ)」
  • 「個々のユーザーの持つ情報(属性)」
  • 「ユーザーと他情報の関係性(リレーション)」

を決める必要があります。

データベースを構成する要素

  • サービスで扱う概念(エンティティ)
  • エンティティの属性
  • エンティティ同士の関係性(リレーション)

エンティティ(テーブル)

エンティティとは、サービスの中で管理する必要のある概念(情報)を指します。
例えば、SNSなどのサービスでは「ユーザー」や「投稿内容」、「コメント」などの情報を管理する必要があります。
これらの情報がエンティティにあたります。

エンティティの属性(テーブルのカラム内容)

属性とは、エンティティが個別に持つ情報です。ユーザーというエンティティでは
「名前」「アドレス」「パスワード」「プロフィール写真」が属性にあたります。

リレーション(railsのアソシエーションに近い)

リレーションとは、エンティティとエンティティとの間に存在する関係性のことです。
例えば、料理には、その料理を作った人がいます。こういった場合料理と作った人の
2つのエンティティには関係性があります。

データベース設計の手順

大雑把に説明すると
1,データベースで管理するデータ(エンティティ)を決める
2,それぞれのデータの持つ属性を決める
3,エンティティ同士の関係性を決める(リレーション)
4,データを実際にデータベースのテーブルとして定義する

1,データベースで管理するデータ(エンティティ)を決める

   必要なテーブルを考える形
   通販ならユーザーと製品のテーブルがまず必要

2,それぞれのデータの持つ属性を決める

   ユーザーなら・・・・名前、性別、年齢、資金など
   製品なら・・・製品名、価格、在庫状況など
   右側の項目内容を決めること。

3,エンティティ同士の関係性を決める(リレーション)

    出品した、買った製品とはユーザーと繋がっていますので
    その関係にリレーションを設定すします。

4,データを実際にデータベースのテーブルとして定義する

    最後に1〜3の手順を元に実際にテーブルを作成することになります。
    エンティティはテーブルに相当し、属性はテーブルが持つカラムに相当します。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?