この問題を解決するのを手伝ってください
SQLで関係テーブルを作成しようとしていますが、直面している課題は
user_table に u1、u2、u3 の 3 人のユーザーがいる場合
create table user_tab
(user_id varchar2(10) not null,
user_name varchar2(20),
user_friend_id varchar2(10),
constraint u_pk primary key (user_id),
constraint fk_user_snap
foreign key (u_s_id)
references pic_table(user_id));
insert into user_tab values(U1,user1)
insert into user_tab values(U2,user2,U1)
insert into user_tab values(U3,user3,U1)
u1 が友人リストに u2、u3 を追加すると、u2 と u3 は友人 ID を u1 として持ちます。
Select * from user_tab;
User_id User_Name User_Friend_id
U1 User1
U2 User2 U1
U3 User3 U1
しかし、U2 が U1 と U3 をフレンドとして追加した場合、行 u3 の friend_id 列はどのようにして u1 と u2 の両方を外部キーとして保持するのでしょうか? 私が達成しようとしているのは、U1 が U2 を友人として追加した場合、別の列を追加して U1 を friend_id として保存することで関係を保存できることですが、U2 が U1 を友人として追加しない場合は、U2 の友人リストが生成されたときに U3 を保存する必要があります。 、U4 など、U2 が追加した user_ids
この問題に対処するにはどうすればよいですか? リレーションシップを保持するために別のテーブルを作成する必要がありますか?