USER_MASTER
このようなテーブルを持っている
USER_ID (int)
USER_NAME(varchar(50))
USER_FOLLOWERS
このようなテーブルを作成します
USER_FOLLOWER_ID // Auto increment-Primary Key for this record
USER_ID (int) // foriegn key to UserId column in USER_MASTER table
FOLLOWER_ID (int) // foriegn key to UserId column in USER_MASTER table
UserIdを最初の列に格納し、このユーザーをフォローしているユーザーのUserIdを列に格納しFollower_ID
ます。
したがって、データは次のようになります
USER_ID USER_NAME
--------------------------------------
1 SCOTT
2 JARED
3 MARC
4 ERIC
USER_FOLLOWER_ID USER_ID FOLLOWER_ID
--------------------------------------
1 1 2
2 1 3
3 1 4
4 2 1
つまり、ユーザースコットには、ジャレッド、マーク、エリックの3人のフォロワーがいます。ユーザーJAREDには1人のフォロワー、つまりSCOTTがいます
ユーザーのフォロワーのリストを取得するには(例:Scott(ID = 1))、これら2つのテーブル間で結合を実行できます
SELECT U. USER_ID, U.USER_NAME From USER_MASTER U
INNER JOIN USER_FOLLOWERS UF ON U.USER_ID=UF.FOLLOWER_ID
WHERE UF.USER_ID=1 // 1 is the ID of SCott