sql >> データベース >  >> RDS >> Mysql

SQLクエリでの配列の使用

    これがあなたのための一般的なレイアウトです、あなたが言及したように3つのテーブルを作ります、私は例として以下に概説しました

    [表]

    • ユーザー
    • フォロワー
    • 投稿

    usersテーブルには、少なくともuserid(自動インクリメント値/主キー)のような列が必要です。

    followersテーブルには、usersテーブルのuseridと一致するuseridのようなものが必要です。これは、usersテーブルのフォロワーのID番号も持つfollowid列です。

    次に、投稿テーブルにもユーザーIDが必要になるため、各投稿が作成されると、ユーザーテーブルのIDが使用されます。

    次に、次のようなことを行う必要があります:

    SELECT p.*
    FROM posts AS p
    WHERE p.userid IN (SELECT followid FROM followers WHERE userid = ###)
    ORDER BY p.date DESC
    

    これを理解するために、ユーザーIDをどのように取得しているかによって異なります。 Facebookのようなもののように、ユーザーがログインした後にセッションを使用してユーザーIDを渡す場合は、userid=###をuserid="。$_SESSION['userid']のようなものに変更できます。ただし、実際にはユーザーIDを渡す方法によって異なりますが、上記の方法で少なくともある程度始めることができます。

    テーブルが大きくなったときに結合がすばやく行われるように、userid、followid列にインデックスを付けるようにしてください。



    1. MariaDB JSON_OBJECT()の説明

    2. FOR LOOPでEXCEPTIONSを使用して、エラー時に継続を強制できますか?

    3. プリペアドステートメントでレコードを更新し、更新が機能したかどうかを確認します

    4. いくつかのルールに基づいて行を選択する