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

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

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

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

解決済

ログイン時のユーザーテーブルについて、氏名とパスワードが同一のユーザーが複数存在した場合の対応

SZR0601
SZR0601

総合スコア22

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

4回答

0評価

1クリップ

297閲覧

投稿2021/12/29 14:53

編集2021/12/30 04:48

前提

以下のテーブル定義を基に質問させて頂きます。
イメージ説明

なお、本質問は以下URLの質問内容が曖昧になってしまったため作り直した質問となります。
https://teratail.com/questions/376003

状態

スマホアプリを作成しており、ログインシステム実装のためユーザーテーブルを設計しています。

知りたいこと

この定義ではメールアドレスの情報からユーザー名やパスワードが同一でも、ログイン時に正しいユーザーでログインできると思います。

しかし、作ろうとしているスマホアプリではメールアドレスの情報はいらないため、できれば使いたくないと考えています。
また、ユーザー名やパスワードは一意制約などを設けずに、自由に設定したいと考えています。

メールアドレスをユーザーテーブルに含まずに、ユーザー名やパスワードが同一でもログインする時に正しいユーザーでログインする方法を知りたいです。

よろしくお願いいたします。

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

hoshi-takanori

2021/12/29 16:23

スマホアプリの場合、ログインというか初回利用時に一意な ID (質問者さんのユーザーテーブルのユーザー ID とか) を割り当てれば (悪用防止のためにトークン的なものを付与することになりますが)、パスワードさえも不要にできないことはないです。ただし、機種変更などの対応が面倒くさくなりますが。 また、パスワードをユーザーを特定するための情報の一部として使うのは間違いです。そもそもパスワードは平文 (そのままの値) ではなく、ハッシュ化して保存する必要がありますが、その際に乱数 (ソルト) を加えるので同じパスワードでも DB 上は異なるデータになります。
SZR0601

2021/12/30 04:55 編集

hoshi-takanoriさん ご回答いただき、ありがとうございます。 確かにパスワードはハッシュ化するからユーザー特定情報にはできませんね。 一意のIDは端末にファイルとして保存する認識であっていますか。 お手数ですが、ご回答いただければと存じます。
SZR0601

2021/12/30 04:56

SurferOnWwwさん 前の質問ではお世話になりました。 上記内容について対応いたしました。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。