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

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

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

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

1168閲覧

ログインしてユーザーごとにページが存在するWebサイトを作りたいが、データベースをどう構成すればいいか分からない

jonpili

総合スコア12

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/12/15 00:54

編集2018/12/15 00:58

学生です。
就職活動の大変さを感じて、自分だけでなく他の就活生の支援も出来たらと思いユーザーごとに就活のメモが作れるWebサイトを作ろうとしました。
しかしこれまでHTML,CSS,Python,Rしかやった事がなくサーバサイドの構築に苦労しており、特にデータベースの構成が見当もつかないので教えてください。

EasyJobHunt
フロント側はおおよそこのようにしようと考えています。
これに
①TOP画面にはTwitterログインのボタンがあり、そこからOAuth認証によってユーザーごとのページに入れる
②このサイトを使った事があるユーザーはデータベースからデータが参照されて過去に記入したデータが表示される
③保存ボタン(今は形だけです)を押すと今記入しているものがデータベースに書き込まれる
といったサーバ側の機能を足したいと思っています。

①はググったら記事が色々出てきたのでそれでなんとかなりそうですが、
②や③のデータベースをどのような構成にすればいいかは調べてもサッパリ分かりません。

サイトへの入力はPHPで掴み、データベースはphpMyAdminを使おうと思ってるのですがそもそもその構成が分からず進まないので、
構成の回答、考え方のヒント、もしくはヒントになる記事等をお教えくださるようお願いします!

開発環境
MacOS 10.14.1
HTML,CSS,JavaScript,PHP
MAMP(PHP7.2.10)
phpMyAdmin

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

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

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

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

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

jonpili

2018/12/15 14:00

皆さん回答ありがとうございました! 正直どなたも素晴らしいご回答なのですが、しいて選ぶとしたらで考え方までお教えくださったmtsさんを選ばせて頂きました!
guest

回答3

0

php なら OSS な 会員制サイト構築プロジェクト(SNS サイトとか)が多数あるのでを参考にしてみると良いです。
Open PNE なら、データベースの設計書もあったはず。

ただし、オープンな会員制のサイト構築は非常に難易度が高いです。法律を知ることから始まり、規約作成には弁護士とのツテも必須です。とんでもないダメージを受ける可能性があるので、まずはプログラミング以前の問題を整理したほうが良いです。

投稿2018/12/15 04:00

編集2018/12/15 04:12
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

m.ts10806

2018/12/15 04:09

後半超大事ですね。テンプレ通りの規約でもあるのとないのでは大違いですもんね…
退会済みユーザー

退会済みユーザー

2018/12/15 04:15

今みたいに厳しくなくて牧歌的な頃でも、規約キチンと作らないと運用負荷はそれなりにあったので、キビシクなった今だとかなりしんどいんじゃないかなぁ。。。
jonpili

2018/12/15 13:52

ご回答ありがとうございます! 早速調べてみました こんなにたくさん世にあるんですね そして法律のほうは考えていませんでした そっちも気長に学んで感覚を掴んでみます!
guest

0

ヒントでいいということなので、超ざっくり。

データーベース構成
ユーザーテーブル:ユーザーの一覧
メモテーブル:ユーザーが投稿したメモの一覧
(他、中間テーブルが必要かもしれない)

各メモデータはユーザーのIDを持つ(誰が投稿したものかを示す)。

仕組み
ログインとは、どのユーザーIDを使用するか決める行為。
ログインしたら使用するユーザーIDを元にユーザーデータやメモデータを表示させる。

詳しくは
「php sns 作り方」「php todoリスト 作り方」「php 掲示板 作り方」でGoogle検索。

ちなみに「phpMyAdminはデータベースの種類ではない」のでその辺もちゃんと理解した方がいいです(やっていく内に分かるとは思いますが)。
(何をどう調べたか分からないので、質問の際はこちらも参考に。→https://teratail.com/help/question-tips

投稿2018/12/15 01:09

sakura_hana

総合スコア11425

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

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

jonpili

2018/12/15 13:57

ご回答ありがとうございます! データベースのイメージがようやく出来ました お教えくださったワードで調べたら参考になる記事もたくさんあって学べそうです!(今まではPHP メモ帳で調べてました) そして質問の仕方もそれを読んで工夫しようと思います!
guest

0

ベストアンサー

データの基本は持ち回りです。
ユーザー個別の情報を取得したいのでしたらそのユーザーだと確実に識別可能な情報を対象のテーブルに保存することです。よく使われるのがユーザーID。
これは「一意である」という考え方ですが、覚えておいてください。
それさえあれば特定可能なので何とでもなります。

あとは「セッション」の考え方ですね。
そこはPHPマニュアルを読んで理解を深めてください。

もちろんデータの持ち回りはセッションだけではありませんけども。
よく例で出すのはteratailのページのURLです。
このページのURLの最後の数字が何を指しているか分かりますか?
おそらく質問IDです。
この質問IDをURLに含めることで同じ質問詳細であっても特定の質問の情報を取得するように作ることができます。

と言ったように。
そこは要件次第ですね。
「ログインしているユーザーの情報を取りたい」のであればセッションですし。

データベースの設計よりも先に要件をきちんと決めて画面の遷移とかその画面自体のレイアウトで「機能」の詳細を決めてください。
機能が確定すればデータが決まります。

投稿2018/12/15 03:39

m.ts10806

総合スコア80765

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

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

jonpili

2018/12/15 13:55

ご回答ありがとうございます! 僕なりに要件を考えていたものが、全く浅いものだと驚きました… ユーザーIDについては使い方を理解できました! セッションもなんとなくは分かったので、あとはしっかり調べて理解を深めます その上で要件定義を考え直そうと思います!
m.ts10806

2018/12/15 20:57

要件定義には先に出ている法律関連も盛り込む必要があります。それも要件です。家をたてるときの基礎、地盤となる部分なので。 teratail自体、または既存サイトの作りも参考にすると良いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問