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

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

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

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

解決済

ある要求を満たす、MySQLを用いたデータベース設計の確認

Kei227
Kei227

総合スコア0

MySQL

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

1回答

0評価

0クリップ

2399閲覧

投稿2015/11/06 12:45

編集2022/01/12 10:58

以下の要求を満たすテーブルを作成し、

  • User登録に必要な情報は名前、メアド、パスワード
  • 友だち追加は一方的にできるが、相手は追加又はブロックできる
  • ブロックしたユーザー一覧が見れる(ブロックを外せる)
  • 友達一覧が見れる
  • 個人チャットでメッセージが遅れる
  • グループ作成できる
  • グループでもメッセージを送れる
  • グループにはユーザーを追加、削除できる
  • グループ名を変えられる
  • 全メッセージの中から文字queryで検索可能

=============

lang

create table users ( id int primary key auto_increment, name varchar(50), mail varchar(50), password varchar(50) ); insert into users (id, name) values (1, 'keita'); insert into users (id, name) values (2, 'takeru'); insert into users (id, name) values (3, 'taro'); insert into users (id, name) values (4, 'ken'); create table blockusers( blockuser_id int, blockuser_name varchar(50), id int, foreign key (id) references users (id) ); insert into blockusers (blockuser_id, blockuser_name) values (1, 'yui'); insert into blockusers (blockuser_id, blockuser_name) values (2, 'ayu'); create table friends( friend_id int primary key, friend_name varchar(50), id int, foreign key (id) references users(id) ); insert into friends (friend_id, friend_name) values (1, 'mim'); insert into friends (friend_id, friend_name) values (2, 'erika'); create table groups( group_id int primary key, group_name varchar(50), id int, foreign key (id) references users(id) ); insert into groups (group_id, group_name) values (1,'school'); insert into groups (group_id, group_name) values (2,'bestfried'); insert into groups (group_id, group_name) values (3,'teamA'); create table schools ( school_id int primary key, id int, foreign key (id) references users(id), group_id int, foreign key (group_id) references groups (group_id) ); insert into schools (school_id, id) values (1, 1); insert into schools (school_id, id) values (2, 3); insert into schools (school_id, id) values (3, 4); create table messages( message_id int, message_content text, id int, foreign key (id) references users(id), friend_id int, foreign key (friend_id) references friends(friend_id), group_id int, foreign key (group_id) references groups(group_id) ); insert into messages (message_id, message_content) values (1, 'hoge?'); insert into messages (message_id, message_content) values (2, 'hoge!!!'); insert into messages (message_id, message_content) values (3, 'hoge');

以下の命令を実行するMysql文を出力しました。

(1)ユーザ(id=1)とユーザ(id=2)の会話の履歴
(2)グループ(id=1)に所属しているメンバー一覧
(3)グループ(id=1)の会話履歴
(4)hogeという文字を含むメッセージ一覧

lang

(1)select messages.message_content from users inner join messages on users.id = messages.message_id inner join groups on users.id = groups.group_id inner join schools on schools.school_id = schools.school_id where groups.group_id = 1; (2)不明 (3)不明 (4)select messages.message_content from messages where messages.message_content = '%hoge%';

足りないテーブルや、書き間違いがあれば訂正していただきたいです。宜しくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

KiyoshiMotoki
KiyoshiMotoki

2015/11/06 13:49

分からない点・問題点をもっと細かい粒度に落とし込んでから質問された方が、回答がつきやすくなると思います。 答えるべき内容が多すぎると回答者は負担に感じますし、なによりこのご質問からは、ちょっと「丸投げ感」を感じますよw
Kei227
Kei227

2015/11/06 14:47

確かに丸投げのようなもので、回答者様にご負担かける書き方でした、、。 訂正いたしました。ご教授ありがとうございます!

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

MySQL

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