私はいくつかのプロジェクトでウォーキングしています。フォロワーとTwitterシステムのようなシステムを考えています。私はデータベースにメンバーテーブルを持っています。フォロワーシステムはどうやってできますか?ハットはロジックですか?テーブルには名前がついていて、3行あります。これらの行はid、user_id、follower_idです。私のために十分ですか?私はこのシステムをどうすればできるのか分からないのですか?手伝って頂けますか?フォローアンドフォロワーシステムの論理は何ですか?
答えて
をはい、そのデザインはシンプル、次のシステムには十分ですTwitterのようなものです。もちろん、余分なデータ(@Inaで提案されているタイムスタンプなど)が役に立つ場合があり、その中にid
が厳密に必要なわけではありません。
userID INT PRIMARY,
followID INT PRIMARY,
creationTime DATETIME
People
という1つのエンティティがあると仮定すると、多対多の関係をPeople
からPeople
に作成する必要があります。関連付けテーブルには、PeopleID
とFollowing
の2つの列があります。
ユーザーのフォロワーを検索するには、そのユーザーのIDをFollowing
列で検索します。 ユーザーがフォローしているユーザーを一覧表示するには、PeopleID
列で検索してください。
「フォロー」(または「に続く」)は、テーブルが反映する2つのユーザーエンティティ間の関係です。
これは、別のエントリと同じユーザー間で複数のフォローおよびアンフォローを処理する予定がない場合は、id
も必要ないことを意味します。
(ユーザー1のリストを取得することは速い次の)、FOREIGN KEY
とuser_id
とfollower_id
参照user
を作成し、それらの両方の複合主キーにし、follower_id
にインデックスを作成します。
CREATE TABLE
follows
(
user_id INT NOT NULL REFERENCES user (id),
follower_id INT NOT NULL REFERENCES user (id),
PRIMARY KEY
(user_id, follower_id)
KEY follower_id (follower_id)
)
ENGINE=InnoDB -- if you want the foreign keys to work
あなたは他の追加も属性も同様です。
追跡したい場合は、次のと同じユーザー間のunfollowsが、あなたはエンティティにこれを推進する必要がある、代理の主キーを追加:
CREATE TABLE
follows
(
id INT NOT NULL PRIMARY KEY,
user_id INT NOT NULL REFERENCES user (id),
follower_id INT NOT NULL REFERENCES user (id),
-- These are additional attributes
follows_from DATETIME NOT NULL,
follows_till DATETIME,
--
KEY follower_id (follower_id),
KEY user_id (user_id)
)
ENGINE=InnoDB -- if you want the foreign keys to work
は、すでにユーザーがログインするサイトは、次の2つの列を使用してデータベースにテーブルを追加したいと思う持っていると仮定すると、いずれかの「friend1」と ':
私のようなものをお勧めしますfriend2 '(友好関係が双方向関係であると仮定)または' leader 'と' follower '(購読の単方向関係の場合)。次に、friend1とfriend2を入力(POSTやGET変数など)し、そのペアをデータベースに入力する短いPHPスクリプトが必要になります。最後に、PHPスクリプトへのAJAX呼び出しを行うボタンをWebサイトに追加するか、そのPHPスクリプトをターゲットとするHTMLフォームの一部にボタンを追加します。
- 1. opencvのfindcontour()理論は何ですか?
- 2. 論理SQLと物理SQLの違いは何ですか?
- 3. z/OSでの共用論理区画とは何ですか?
- 4. 複数の@mediaクエリの論理構造は何ですか?
- 5. このプログラムの背後にある論理は何ですか?
- 6. 次のlruコードの論理エラーは何ですか
- 7. 論理データモデルと概念データモデルの違いは何ですか?
- 8. KMPパターンマッチングアルゴリズムの背景にある理論は何ですか?
- 9. カテゴリー理論POVのApplicative Functor定義は何ですか?
- 10. NOR論理演算子とは何ですか?
- 11. ハンドルバーテンプレート内の論理論理
- 12. このjavascript論理関数の私の考えの欠陥は何ですか?
- 13. マルチ(論理)層にオブジェクトを渡すための 'Rails Way'は何ですか?
- 14. javascriptの文字列比較の基礎となる論理は何ですか?
- 15. MVVMで論理検証を実装する良い方法は何ですか?
- 16. Erlang Actors、Scala Actors、理論的概念 "Actor"の違いは何ですか?
- 17. この記号はグラフ理論≤Pで何を意味しますか?
- 18. Ruby Rails 2.3.xページネーションの背後にある理論は何ですか?
- 19. 論理ORと短絡OR演算子の違いは何ですか?
- 20. JAVA:論理AND/ORと短絡AND/ORの違いは何ですか?
- 21. キューイング理論では、処理時間と平均キューイング遅延の関係は何ですか?
- 22. ||の論理エラーオペレーター?
- 23. 4列論理で
- 24. Pythonシミュレーションでの論理エラー
- 25. グラフ理論のハッシュテーブル
- 26. リスト理論のサポート
- 27. タイルベースのゲーム理論
- 28. Fortranの論理式
- 29. ブール論理エラー
- 30. 論理式パーサー
これは完全に受け入れられる設計のようです。 'user_id'でそのユーザーを検索し、 'follower_id'でそのユーザーを検索してユーザーのフォローを見つけることができます。関係が最後に更新されたことを知るために、タイムスタンプなどの追加のメタデータを追加することもできます。ユースケースに応じて、関係がいつ開始されたか終了したかを追跡することもできます。 – Ina
_ "名前がついているテーブルを作成しました.3行あります" _ - あなたは "3 **列**"を意味しますか? –