質問: SNS等でサインアップをして 次回からログインすると自分のページに入れますが それはデータベースを生成しているのですか? また テーブルの生成とのメリットのちがいは何ですか?
回答: 回答としては 「サービスによります」 が第一になります。がそれだと面白くないと思いますので一般的な話をしておきます。 アカウントを作るたびにデータベースやテーブルを生成することはあまりなく、 アカウントテーブルにデータを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のデータだけ取ってくるようにすることで それ以外のデータが混じらないようにアプリで制御しています。