私はいくつかのプロジェクトでウォーキングしています。フォロワーと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. ATMマシンの論理は何ですか?
- 2. opencvのfindcontour()理論は何ですか?
- 3. 論理SQLと物理SQLの違いは何ですか?
- 4. z/OSでの共用論理区画とは何ですか?
- 5. この論理文の反対は何ですか
- 6. 次のlruコードの論理エラーは何ですか
- 7. 複数の@mediaクエリの論理構造は何ですか?
- 8. このプログラムの背後にある論理は何ですか?
- 9. vhdlの論理式と(&&)の対応は何ですか?
- 10. 論理データモデルと概念データモデルの違いは何ですか?
- 11. KMPパターンマッチングアルゴリズムの背景にある理論は何ですか?
- 12. カテゴリー理論POVのApplicative Functor定義は何ですか?
- 13. google apiプロジェクトの論理的定義は何ですか
- 14. NOR論理演算子とは何ですか?
- 15. ハンドルバーテンプレート内の論理論理
- 16. 次の論理行はemacsで何をする
- 17. このjavascript論理関数の私の考えの欠陥は何ですか?
- 18. 「推論デーモン」とは何ですか?
- 19. PHPの関数に対して論理エラーを返すベストプラクティスは何ですか
- 20. マルチ(論理)層にオブジェクトを渡すための 'Rails Way'は何ですか?
- 21. scikit-learnのextract_patches関数の背後にある理論/アルゴリズムは何ですか?
- 22. AWS DataPipeline Schedulingの最小間隔15分間の論理は何ですか?
- 23. 2つのRuby on Rails論理文の違いは何ですか?
- 24. javascriptの文字列比較の基礎となる論理は何ですか?
- 25. MVVMで論理検証を実装する良い方法は何ですか?
- 26. 論理ORと短絡OR演算子の違いは何ですか?
- 27. この記号はグラフ理論≤Pで何を意味しますか?
- 28. arr1 [i ++] = arr2 [j ++]の背後にある論理は何ですか?
- 29. .vagrantと.vagrant.dディレクトリの論理的/概念的な違いは何ですか?
- 30. Ruby Rails 2.3.xページネーションの背後にある理論は何ですか?
これは完全に受け入れられる設計のようです。 'user_id'でそのユーザーを検索し、 'follower_id'でそのユーザーを検索してユーザーのフォローを見つけることができます。関係が最後に更新されたことを知るために、タイムスタンプなどの追加のメタデータを追加することもできます。ユースケースに応じて、関係がいつ開始されたか終了したかを追跡することもできます。 – Ina
_ "名前がついているテーブルを作成しました.3行あります" _ - あなたは "3 **列**"を意味しますか? –