質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

2回答

1176閲覧

WEBアプリケーションDB設計に関して

encho

総合スコア182

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

2クリップ

投稿2020/02/04 01:31

編集2020/02/08 11:09

WEBアプリケーションを作るにあたりDB設計を行っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/02/04 01:37

まず、どんな形でもいいので自分でやってみてください。 「適切か」を求めるのであれば始めから他者に意見を求めるのではなく「こういう要件を元にこういう設計をしてみたけどどうか」という風に質問された方がよりよいアドバイスを得られると思います。 ほぼ、作業依頼です。
encho

2020/02/04 01:46

自分で調べながら概念モデルまでは考えてみたのですが、 そこから同テーブルにつなげていいのか分からなかったので質問させていただきました。
yodel

2020/02/04 02:38

生徒と先生との関係を1:1でいいのか1:多でいいのか、多:多なのかは要件次第では?
encho

2020/02/04 02:41

お聞きしたかった部分は、 生徒と先生との関係ではなくユーザー対生徒、ユーザー対先生の関係でした。
guest

回答2

0

教師と生徒は属性が違うので、これはテーブルを分けた方が良いでしょう。
ユーザーはログインするためのアカウント情報と考えると、これも分けていた方が良いでしょうね。

教師と生徒はユーザーへの外部キーの関係になると思います。

投稿2020/02/04 02:30

sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

encho

2020/02/04 02:33

ありがとうございます。 この場合はユーザー対教師、ユーザー対生徒は 1対1の関係となりますが問題はないということでしょうか? またメッセージやレビューはどのように教師や生徒へ紐づけるべきでしょうか?
sazi

2020/02/04 02:38

あるユーザーが教師と生徒を兼ねる事があるなら別ですけど、そうでなければそれぞれ1:1で問題無いと思います。 メッセージなどのその他については、質問からは要件が読み取れませんので、回答しかねます。
guest

0

  • 生徒テーブル
  • 教師テーブル
  • レビューテーブル

があれば、最低限仕様は満たすでしょう

投稿2020/02/04 01:38

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/02/04 01:42

メッセージ機能は何をしたいかわかりませんが 登録したeメールを仲介する感じですかね ただしブロックする機能が必要になるかも マッチング機能は専用のテーブルが必要かもしれません (レビューテーブルと教師テーブルからある程度は 条件とれそうですけど・・・)
encho

2020/02/04 01:45

ユーザーの情報に関するテーブルは ユーザーテーブル、生徒テーブル、教師テーブルという形で3つのテーブルを考えていたのですが ユーザーテーブルという形ではテーブルは必要ないということでしょうか?
yambejp

2020/02/04 01:59

> ユーザーテーブル 自分が生徒なら生徒テーブル、自分が教師なら教師テーブルで 十分な気もしますが、生徒テーブル・教師テーブルに何を 保持させたいかによりますね それぞれにidのみ保持させるなら、細かい情報はユーザーテーブルで 管理してよいかもしれません。 逆にユーザーテーブルにまとめるなら生徒テーブル・教師テーブルは いらないかも・・・
yambejp

2020/02/04 03:06

履歴やマッチング情報は 生徒=教師テーブル的な中間テーブルを作るのが妥当です
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問