77784


SNS等でサインアップをして

次回からログインすると自分のページに入れますが

それはデータベースを生成しているのですか？

また テーブルの生成とのメリットのちがいは何ですか？


CC BY-SA 4.0
2021-06-24T07:09:21.020
77756
2021-06-25T07:22:45.377
2021-06-25T06:54:31.787
39481
39481
question
mysql
ログインとデータベース生成


あなたが言う「データベース」が、何を指しているかで、回答が変わってきます。  
[データベース -
ウィクショナリー](https://ja.wiktionary.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9)

広義的な意味で、「様々な情報を、電子計算機（コンピューター）を用いて検索することができるように体系的に構成したもの」という意味でしたら、答えは「Yes」です。  
少なくとも、ログインに使う認証情報などが、ログインしたサービスを動かしているコンピューターのどこかに記録されます。

「[データベース管理システム
(DBMS)](https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0)」を指しているのでしたら、ログインするサービスによるでしょう。  
一般的に、ログインを必要とする大半のサービスは、 MySQL, MariaDB, PostgreSQL, SQLite, Microsoft SQL
Server, MongoDB, Redis 等々... と言った、 DBMS に情報を記録しているでしょう。  
しかし、理論上はどこかに情報が記録さえされていれば良いので、極端な話 DBMS を使わずに XML のテキストファイルに記録してもサービスは作れます。  
このため、世の中には DBMS を使っていないサービスも、探せばあると思われます。

ちなみに、一般的に DBMS が利用されるのは、 記録や検索を高速に効率よく行えたり、
複数のユーザーが同時にサービスにアクセスするような対応を、サポートしやすいからですね。


CC BY-SA 4.0
2021-06-24T13:16:18.107
77764
2021-06-24T13:16:18.107
8237
77756
answer


回答としては  
「サービスによります」  
が第一になります。がそれだと面白くないと思いますので一般的な話をしておきます。

アカウントを作るたびにデータベースやテーブルを生成することはあまりなく、  
アカウントテーブルにデータをINSERTして、投稿テーブルに対してはアカウントのキーを割り当てることでテーブルにINSERTします。

例えば以下のアカウントテーブルがあったとします。

customerId | customerName  
---|---  
1 | Taro  
2 | Hanako  
  
新しくアカウントを増やす場合はINSERTでIDが3のレコードが増えます。

さらに投稿テーブルがあったとします。  
投稿テーブルには投稿したアカウントのIDを入れておくことで誰の投稿かわかるようにします。

postId | postCustomerId | postText  
---|---|---  
1 | 1 | はじめまして太郎といいます  
2 | 1 | SNSを始めてみました  
3 | 2 | 私が来た！  
  
アカウントの数に限らず投稿の数は複数持てるので、一対多であるといえます。  
こういったデータ間の関係性を表すのを「関係モデル」といいその関係モデルと実現したデータ構造がMySQLをはじめとするリレーショナルテータベースです。

SQLで取得するさいはきちんと自分のIDのデータだけ取ってくるようにすることで  
それ以外のデータが混じらないようにアプリで制御しています。


CC BY-SA 4.0
2021-06-25T07:22:45.377
77784
2021-06-25T07:22:45.377
22665
77756
answer