リレーショナル データベースでレコードの関係をモデル化する最善の方法を決定しようとしています。これは古典的な友達/フォロー モデルです。
~~~~
ユーザーはゼロから多くの友達を持つことができます。
ユーザーはゼロから多くのフォロワーを持つことができます。
友達もフォロワーもユーザーそのものです。
~~~~~
これをモデル化する最良の方法は何ですか?
ありがとう!
リレーショナル データベースでレコードの関係をモデル化する最善の方法を決定しようとしています。これは古典的な友達/フォロー モデルです。
~~~~
ユーザーはゼロから多くの友達を持つことができます。
ユーザーはゼロから多くのフォロワーを持つことができます。
友達もフォロワーもユーザーそのものです。
~~~~~
これをモデル化する最良の方法は何ですか?
ありがとう!
ユーザー (UserId、...)
サブスクリプション (サブスクライバー、パブリッシャー)
フレンドシップ (FirstUser、SecondUser)
CREATE TABLE Users (
UserID int not null primary key,
...
)
CREATE TABLE Subscription (
Subscriber int not null references Users(UserID),
Publisher int not null references Users(UserID),
constraint ck_NotEqual check (Subscriber <> Publisher)
)
CREATE TABLE Friendship (
FirstUser int not null references Users(UserID),
SecondUser int not null references Users(UserID),
constraint ck_Order check (FirstUser < SecondUser) -- since friendship is reflective
)