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

友情データベーススキーマ

    create table 
    friendship(
    user bigint, 
    friend bigint,
    primary key(user, friend),
    key(friend, user),
    constraint `fk_user` foreign key (user) references user(id),
    constraint `fk_friend` foreign key (friend) references user(id)
    );
    

    ユーザー1がユーザー2に友情リクエストを送信するときは、

    insert into friendship (user, friend) values (1,2);
    

    ユーザー2がリクエストを拒否した場合、

    delete from friendship where user = 1 and friend = 2;
    

    ユーザー2がそれを受け入れる場合:

    insert into friendship (user, friend) values (2,1);
    

    次に、友情は次のように見つけることができます:

    select f1.* 
    from friendship f1
    inner join friendship f2 on f1.user = f2.friend and f1.friend = f2.user;
    

    この最後のクエリでビューを作成できます。これは、ユーザーの友達、さらには友達の友達をクエリするのに役立ちます。



    1. トップ5のMySQL監視ツール

    2. MySQLの1つのフィールドに対してのみWHERE句を表示する方法はありますか?

    3. 新しいSQLServerカーディナリティ推定器の最初の外観

    4. 結合とサブクエリ